本文总结了正则表达式的语法,以供日后快速回忆;以及学习及练习资源。
[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
|
类型解释: