符号 | 解释 | 示例 | 说明 |
---|---|---|---|
. | 匹配任意字符 | a.c | 可以匹配abc / adc / a#c / a1c等 |
\w | 匹配字母/数字/下划线 | a\wc | 可以匹配abc / a1c / a_c等 但不能匹配b#t |
\s | 匹配空白字符(包括\r、\n、\t等) | hello\sword | 可以匹配hello word |
\d | 匹配数字 | \d\d | 可以匹配00 / 10 / 99等 |
\b | 匹配单词的边界 | \bhello\b | hello |
^ | 匹配字符串的开始 | ^hello | 可以匹配hello开头的字符串 |
$ | 匹配字符串的结束 | .py$ | 可以匹配任意.py结尾的字符串 |
\W | 匹配非字母/数字/下划线 | a\Wc | 可以匹配a#c / a@c等 |
\S | 匹配非空白字符 | hello\Sword | 可以匹配hello@word等 |
\n | 匹配一个换行符 | ||
\r | 匹配一个回车符 | ||
\t | 匹配一个制表符 | ||
\D | 匹配非数字 | \d\D | 可以匹配9a / 3@ / 0Z等 |
\B | 匹配非单词边界 | \Bow\B | 可以匹配helloword的 ow |
[] | 匹配来自字符集的任意单一字符 | [abcde] | 可以匹配方括号内任意一个(或) |
[^] | 匹配不在字符集中的任意单一字符 | [^aeiou] | 可以匹配除方括号中的任意字符 |
* | 匹配0次或多次 | \w* | |
+ | 匹配1次或多次 | \w+ | |
? | 匹配0次或1次 | \w? | |
{N} | 匹配N次 | \w{3} | |
{M,} | 匹配至少M次 | \w{3,} | |
{M,N} | 匹配至少M次至多N次 | \w{3,6} | |
丨 | 分支 | doc丨xlsx | 可以匹配doc或者xlsx |
(?#) | 注释 | ||
*? | 重复任意次,但尽可能少重复 | a.*b a.*?b |
将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串 |
+? | 重复1次或多次,但尽可能少重复 | ||
?? | 重复0次或1次,但尽可能少重复 | ||
{M,N}? | 重复M到N次,但尽可能少重复 | ||
{M,}? | 重复M次以上,但尽可能少重复 |
示例:
-
匹配IP地址
[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}