正则表达式
正则表达式是一种描述字符串结构的语法规则,
是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串
正则表达式语法规则
一个完整的正则表达式由两部分构成,元字符和文本字符
元字符就是具有特殊含义的字符,如前面提到的“*”和“?”
文本字符就是普通的文本,如字母和数字等
PCRE风格的正则表达式一般都放置在定界符“/”中间
1、行定位符 ^和 $
行定位符就是用来描述字串的边界。
“^”表示行的开始;“$”表示行的结尾
^tm :表示要匹配字串tm的开始位置是行头 如tm equal
tm$ : 表示要匹配字符串tm结尾的 如 equaltm则匹配
如果要匹配的字串可以出现在字符串的任意部分,
那么可以直接写成 tm
2、单词分界符(\b、\B)
现在需要匹配的是单词tm,而不是单词的一部分
可以使用单词分界符“\b”,表示要查找的字串为一个完整的单词
如:\btm\b
大写的“\B”,意思和“\b”相反
匹配的字串不能是一个完整的单词,而是其他单词或字串的一部分
如:\Btm\B
3、字符类([ ])
正则表达式是区分大小写的
如果要忽略大小写可使用方括号表达式“[]”
只要匹配的字符出现在方括号内,即可表示匹配成功。
注:一个方括号只能匹配一个字符
例如,要匹配的字符串tm不区分大小写 [Tt][Mm]
可匹配字串tm的所有写法
4、选择字符(|)
使用选择字符(|)。该字符可以理解为“或”
(T|t)(M|m)
该表达式的意思是以字母T或t开头,后面接一个字母M或m
说明:
使用“[]”和使用“|”的区别在于,
“[]”只能匹配单个字符,
而“|”可以匹配任意长度的字串。
如果不怕麻烦,上例还可以写为
TM|tm|Tm|tM
5、连字符(-)
变量的命名规则是只能以字母和下画线开头
如果要使用正则表达式来匹配变量名的第一个字母
[a,b,c,d....A,B,C,D...]非常麻烦
正则表达式提供了连字符“-”来解决这个问题。
连字符可以表示字符的范围
[a-zA-Z]
6、排除字符([^])
匹配不符合命名规则的变量,
正则表达式提供了“^”字符
表示行的开始
[^a-zA-Z]
匹配的就是不以字母和下画线开头的变量名
7、限定符(? * + {n,m})
8、点号字符(.)
9、转义字符(\)
10、反斜线(\)
11、括号字符(())
12、反向引用
13、模式修饰符
模式修饰符的作用是设定模式,
也就是规定正则表达式应该如何解释和应用。
不同的语言都有自己的模式设置