正则表达式速查表
匹配字符
[abc] | 匹配a,b,c中的任意一个字符 |
[^abc] | 不匹配a,b,c中的所有字符,“^”只有作为第一个字符出现才有效 |
[a-g] | 匹配a-g范围内的任意一个字符 |
[^a-g] | 不匹配a-g中的所有字符 |
[H-N] | 匹配H-N范围内的任意一个字符 |
[0-9] | 匹配0-9范围内的任意一个字符 |
[a-gH-N] | 匹配a-g,H-N范围内的任意一个字符 |
通配符: | |
. | [^nr],匹配非换行符 |
s | space,空白字符,即换行,制表,空格等字符 |
S | [^s] |
d | digit: [0-9] |
D | [^d] |
w | word: [0-9A-Za-z _] |
W | [^w] |
匹配组
(a | b) |
(…) | 捕获组 |
(?:…) | 非捕获组 |
(?<name>…)或(?’name’…) | 命名捕获组,name可以自定义 |
(?(condition)true_regex | false_regex) |
group(0)用于获取整个匹配串的匹配结果,group(>0)则可以从整个匹配串的结果中获取子捕获组。
注意:java1.7之后才支持命名捕获组(group方法传入字符串name作为参数),js和python暂时还不支持命名捕获组。
频次范围
{3} | 前面匹配项出现3次,等价于{3,3} |
{3,6} | 前面的匹配项出现3到6次 |
{3,} | 前面的匹配项至少出现3次 |
{0,6} | 前面的匹配项最多出现6次 |
通配符: | |
* | {0,} |
+ | {1,} |
? | {0,1} |
w* | 贪婪模式 |
w *? | 非贪婪模式 |
定点符
^ | 字符串开始符 |
$ | 字符串结尾符 |
b | boundary,单词边界 |
B | 非单词边界 |
定点断言 | |
(?=exp) | 向后肯定断言(exp后缀) |
(?<=exp) | 向前肯定断言(exp前缀) |
(?!exp) | 向后否定断言(没有exp后缀) |
(?<!exp) | 向前否定断言(没有exp前缀) |
原文始发于微信公众号(索隆程序员):正则表达式速查表
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/206720.html