正则表达式

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标签内里的内容
上一篇下一篇

猜你喜欢

热点阅读