元字符:在正则表达式中有特殊含义的字符,如:. ?
^ 行开头的位置
$ 行结束的位置
这两个只是匹配行中的位置,并不匹配任何字符。
当开启多行模式时,可以匹配多行
[] 匹配一个字符,此字符列在这里:如[ab]表示匹配一个字符,此字符是a或b
可以用-表示范围:如[0-2]等价于[012],[a-c]等价于[abc],[0-2a-c]等价于[012abc]
只有-在两个字符中间才表示范围,在最开始不表示范围:如[-a-c]表示或者-或者a或者b或者c
[]里面的字符与在外面的有不同:如[.?!],表示或者.或者?或者!,失去了元字符的概念
[^] 匹配一个字符,此字符没有列在这里:如[^ab],表示匹配一个字符,此字符不是a和b
. 匹配任意一个字符
在[]里,它失去了元字符的概念
有些语言,代表除了换行之外的任意字符
| 或:abc|bbb
常与()一起使用:abc|bbb|ddd: 表示abc,bbb,ddd:。(abc|bbb|ddd):表示abc:,bbb:,ddd:
\< > 单词的开始和结束边界:
这里的单词是指字母(26个字母)数字(10个数字)序列
\b也可作为单词边界,但在[]中表示backspace
? 前面的字符是可选的:如abc?表示ab或abc,c可以有,也可以没有
+前面的字符重复一次或多次:如ba+表示ba,baa,baaa …
前面的字符是可选的或重复多次:如ba表示b,ba,baa,baaa …
{min,max} 重复的范围:如ba{2,3}表示baa,baaa。
()可以记录匹配的结果:如(abc|bbb|ddd):\1,\1表示()匹配的结果
顺序按(从左到右排列:(abc(bbb)cc)cc(dd),\1表示(abc(bbb)cc),\2表示(bbb),\3表示(dd)
(?:)可以使()中的匹配不进行记录:(abc(?:bbb)cc)cc(dd),\1表示(abc(bbb)cc),\2表示(dd)
(?=xxx)定位到右边是xxx的位置,不进行匹配:如(?=abab)a,只匹配abab中的a
(?<=xxx)定位到左边是xxx位置,不进行匹配:如s/(?<=\b Jeff)(?=s\b)/’/g,所有的Jeffs变为Jeff’s
(?!xxx)定位到右边不是xxx的位置,不进行匹配:如(?=abab)a,只匹配abab中的a
(?
正则表达式
最新推荐文章于 2021-05-25 09:49:52 发布