正則表達式小结

经常使用元字符
代码 说明
. 匹配除换行符以外的随意字符
w 匹配字母或数字或下划线或汉字
s 匹配随意的空白符
d 匹配数字
 匹配单词的開始或结束
^ 匹配字符串的開始
$ 匹配字符串的结束

经常使用限定符
代码/语法 说明
* 反复零次或很多其它次
+ 反复一次或很多其它次
?

反复零次或一次
{n} 反复n次
{n,} 反复n次或很多其它次
{n,m} 反复n到m次

经常使用反义词

代码/语法 说明
W 匹配随意不是字母,数字。下划线,汉字的字符
S 匹配随意不是空白符的字符
D 匹配随意非数字的字符
B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的随意字符
[^aeiou] 匹配除了aeiou这几个字母以外的随意字符



对当中的 经常使用限定符做一些解释。

* 反复零次或多次。准确的讲应该是“零次或多次匹配前面的字符或子表达式”。比如,zo* 匹配“z”和“zoo”。

* 等效于 {0,}。

为什么会匹配"z",由于会匹配去掉前一个字符的子表达式。即“z” ,假设是zmmo*,那么会匹配zmm和zmmo两个表达式,且反复零次到多次。

+ 一次或多次匹配前面的字符或子表达式。比如,“zo+”与“zo”和“zoo”匹配。但与“z”不匹配。+ 等效于 {1,}。

        ? 零次或一次匹配前面的字符或子表达式。比如,“do(es)?”匹配“do”或“does”中的“do”。?

等效于 {0,1}。

        ? 当此字符紧随不论什么其它限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是“非贪心的”。“非贪心的”模式匹配搜索到的、尽可能短的字符串。而默认的“贪心的”模式匹配搜索到的、尽可能长的字符串。比如,在字符串“oooo”中,“o+?

”仅仅匹配单个“o”。而“o+”匹配全部“o”。

还有须要注意的是“”,将下一字符标记为特殊字符、文本、反向引用或八进制转义符。比如,“n”匹配字符“n”。“ ”匹配换行符。序列“\”匹配“”。“(”匹配“(”。

原文地址:https://www.cnblogs.com/cynchanpin/p/6711078.html