正则表达式速查表
每当遇到写正则表达式处理问题时,我总会打开网页搜索一番,有时候要找很久,因此我总结了常用的元字符,以供随时查找!
基本元字符
|: 逻辑「或」;abc+a|b=>ab[]: 匹配集合中的一个字符;cde+[abc]=>c[^]: 对集合取非;cde+[^abc]=>d-: 定一个区间;cde+[a-c]=>c\: 对下一个字符转义。a*+\*=>*
数量元字符
.: 可以匹配任意字符一次;abc+.=>a+: 可以重复匹配一次或多次;aab+a+=>aa+?:+的懒惰版本;aab+a+?=>a*: 可以重复匹配零次或多次;aab+a*=>aa*?:*的懒惰版本;aab+a*?=>''?: 可以重复匹配零次或一次(即子表达式是可选的);aab+a?=>a{a}: 可以重复匹配a次;aab+a{2}=>aa{b,c}: 可以重复匹配b到c次;aab+a{1,3}=>aa{d,}: 可以重复匹配大于等于d次;aab+a{1,}=>aa{d,}?:{d,}的懒惰版本。aab+a{1,}?=>a
位置元字符
^or\A: 匹配字符串的开头;$or\Z: 匹配字符串的结尾;\<: 匹配单词的开头;\>: 匹配单词的结果;\b: 匹配单词边界(boundary);\B: 匹配非单词边界。
特殊元字符
\d: 任意一个数字字符(等价于[0-9]);\D: 任意一个非数字字符(等价于[^0-9]);\w: 任意一个数字字母下划线字符(等价于[a-zA-Z0-9_]);\W: 任意一个非数字字母下划线字符(等价于[^a-zA-Z0-9_]);\s: 任意一个空白字符(等价于[\f\n\r\t\v]);\S: 任意一个非空白字符(等价于[^\f\n\r\t\v]);\f: 换页符;\n: 换行符;\r: 回车符;\t: 制表符;\v: 垂直制表符;\0: 匹配一个八进制数字;\x: 匹配一个十六进制数字;\c: 匹配一个控制字符;[\b]: 退格字符。
回溯引用和前后查找
(): 可以放子表达式在括号中(子表达式可以嵌套,理论上来说没有上限,但建议适可而止);(?:): 只分组,但不捕获;\1: 匹配第1个子表达式;?=: 向前查找(从左到右,即右存在);?<=: 向后查找(从右到左,即左存在);?!: 负向前查找(从左到右,即右不存在);?<!: 负向后查找(从右到左,即左不存在);?(): 条件 if then;?()|: 条件 if then else。







