经常使用元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的随意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配随意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的開始或结束 |
^ | 匹配字符串的開始 |
$ | 匹配字符串的结束 |
经常使用限定符
代码/语法 | 说明 |
---|---|
* | 反复零次或很多其它次 |
+ | 反复一次或很多其它次 |
? | 反复零次或一次 |
{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”。“\n”匹配换行符。序列“\\”匹配“\”。“\(”匹配“(”。
时间: 2024-10-12 12:50:03