本文总结了正则表达式的语法,以供日后快速回忆;以及学习及练习资源。
[toc]
相关链接
语法总结
| 类型 | 语法 | 说明 | 例子 |
|---|---|---|---|
| 元字符1 | . |
点运算符:点匹配任意单个字符,除了换行符 | |
| 元字符 | [] |
字符集:匹配方括号内的任意字符 |
[ab]匹配a或b,[a-z]匹配所有英文小写字符 |
| 元字符 | [^ ] |
否定字符集:匹配除了方括号里的任意字符 |
[^ab]匹配除a和b以外的字符 |
| 元字符 | * |
重复次数:匹配>=0个重复的在*前的字符 |
a*b可以匹配b, ab, aab, aaab
|
| 元字符 | + |
重复次数:匹配>=1个重复的在+前的字符 |
a+b可以匹配ab, aab, aaab
|
| 元字符 | ? |
重复次数:标记?前的字符可出现0或1次 |
a?b可以匹配b, ab
|
| 元字符 | {n,m} |
重复次数:匹配k个大括号前的字符,$n\le k\le m$ | |
| 元字符 | (xyz) |
匹配与xyz完全相等的字符串 |
(ab)+可以匹配ab, abab
|
| 元字符 | | |
或运算符:匹配符号前或后的字符 |
(ab|cd)可以匹配ab, cd
|
| 元字符 | \ |
转义字符:用于匹配保留字符 | 保留字符[](){}.*+?^$\|
|
| 元字符 | ^ |
锚点:标志行首,只匹配行首出现的2 |
^a只匹配行首的a
|
| 元字符 | $ |
锚点:标志行尾2 |
a$只匹配行尾的a
|
| 简写字符集3 | \w |
匹配所有字母、数字、下划线 | 等于[a-zA-Z0-9_]
|
| 简写字符集 | \W |
匹配所有非字母数字下划线 | 等于[^\w]或[^a-zA-Z0-9_]
|
| 简写字符集 | \d |
数字 | 等于[0-9]
|
| 简写字符集 | \D |
非数字 | 等于[^0-9]
|
| 简写字符集 | \s |
空格,匹配所有空格字符 | 等于[\t\n\f\r\p{Z}]4
|
| 简写字符集 | \S |
非空格 | 等于[^\s]
|
| 零宽度断言5 | ?= |
正先行断言(Positive Lookahead) |
a(?=b)只匹配abcdad中的第一个a(因为它后面跟着b) |
| 零宽度断言 | ?! |
负先行断言(Negative Lookahead) |
a(?!b)只匹配abcdad中的第二个a(因为它后面没跟b) |
| 零宽度断言 | ?<= |
正后发断言(Positive Lookbehind) |
(?<=a)b只匹配abcdcba中的第一个b(因为它前面有a) |
| 零宽度断言 | ?<! |
负后发断言(Negative Lookbehind) |
(?<!a)b只匹配abcdcba中的第二个b(因为它前面没有a) |
| 标志6 | /.../i |
大小写不敏感,忽略大小写 |
/The/i可以匹配The, the, tHe
|
| 标志 | /.../g |
全局搜索,返回所有匹配的结果7 | |
| 标志 | /.../m |
多行2 | |
| 贪婪与惰性 | ? |
默认使用贪婪匹配,使用?放在重复次数的后面,变成惰性匹配 |
a+匹配aaaa中的aaaa;a+?匹配aaaa中的每一个a
|
类型解释: