正则表达式
2019-03-28 本文已影响0人
墨迹MoJi_5b88
元字符:
. 除换行符以外的任意字符
\w 字母或数字或下划线或汉字
\s 任意的空白符
\d 任意数字
\b 单词的开始或结束
^ 字符串的开始
$ 字符串的结束
反义:
\W 任意非字母或数字或下划线或汉字
\S 任意非空白符
\D 任意非数字
\B 任意非单词的开始或结束
[^x] 非x以外的任意字符
[^aeiou] 非aeiou这几个字母以外的任意字符
重复:
* 0或多次
+ 1或多次
? 0或1次
{n} n次
{n,} n或更多次
{n,m} n到m次
字符类:
1、匹配没有预定的元字符集合,用方括号括住
[aeiou] 匹配任何一个英文元字母
2、表示范围:
[0-9] 等同\d
分枝条件:
| 或的关系
分组:
() 用小括号指定子表达式
# (\d{1,3}\.){3}\d{1,3}: \d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})
后向引用:
后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本。
(exp) 匹配exp,并捕获文本到自动命名的组里
(?exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此组分配组号
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
零宽断言:用于查找在某些内容(但并不包括这些内容)之前或之后的东西
(?=exp):
\b\w+(?=ing\b): 以ing结尾的单词的前面部分(除了ing以外的部分) 如查找I'm singing while you're dancing.时,它会匹配sing和danc
(?<=exp):
(?<=\bre)\w+\b: 以re开头的单词的后半部分(除了re以外的部分) 如在查找reading a book时,它匹配ading
负向零宽断言:确保某个字符没有出现,但并不想去匹配它
(?!exp):
\d{3}(?!\d): 三位数字,而且这三位数字的后面不能是数字
\b((?!abc)\w)+\b: 匹配不包含连续字符串abc的单词
(?).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容