玩正则的网站 regexr.com
1.匹配一个任意非断行字符 .
如 啦.. 匹配 啦呼呼
如果是 3.14 则写成 3\.14
2.匹配字母和数字和下划线 \w 小w
匹配非字符或数字或下划线 \W 大w
3.匹配数字 \d 匹配小数写法 如1.1 写成: \d\.\d
匹配非数字 \D
4.匹配空白字符(空格、制表符tap、断行enter) \s
匹配非空白字符 \S
5.字符集合
[] 选择范围
[abc] 匹配 abc
[a-z] 匹配 a到z
6.重复一次或多次 +
[范围]+ 加号前的范围或字符可以重复一次多次都能寻找
[yY][oO]+ yo yoo Yoo 但是 yyyyo 只匹配最后一个yo
7.重复零个或多个 *
[范围]*
[yY][oO]+[!~\.]* yo! yo~~ yo....
8.重复零个或一个 ?
[范围]?
[yY][oO]+p?[!~\.]* yop!! yoop 但是 yoooooo!p 最后的p识别不出来
速查表
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
^ | 行首或字符串开始 | ^yo | yo | ayo |
$ | 行末或字符串结束 | yo$ | yo | yop |
\b | 单词边界 | \byo\b | mu
yo mu | muyomu |
\B | 非单词边界 | \Byo\B | muyomu | mu
yo mu |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
(?=xxx) | 正向肯定预查,从任何匹配xxx的字符串开始处匹配查找字符串 | yo(?=o) | yoo | yo |
(?!xxx) | 正向否定预查,从任何不匹配pattern的字符串开始处匹配查找字符串 | yo(?!o) | yo | yoo |
(?<=xxx) | 反向肯定预查,与正向肯定预查类拟,只是方向相反 | (?<=y)o | yo | yoo |
(?<!xxx) | 反向否定预查,与正向否定预查类拟,只是方向相反 | (?<!goo)d | mood | good |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
[
] | 字符集合 | [ace] | a,
c, e | d |
[
- ] | 字符范围 | [a-c] | a,
b, c | d |
[^
] | 不包含的字符集合 | [^abc] | d,
e | a, b, c |
. | 匹配除断行外的任何字符 | yo. | yoo,
yop, yoh | yo |
\s | 空白字符,等于[\n\r\f\t
] | la\sla | la la | lala |
\S | 非空白字符,等于[^\n\r\f\t] | la\sla | lala | la
la |
\d | 数字 | \d{2} | 23 | 1a |
\D | 非数字 | \D{3} | yoo,
abc | yo1 |
\w | 单词,等于[a-z-A-Z0-9_] | \w{4} | v123 | v12.3 |
\W | 非单词,等于[^a-z-A-Z0-9_] | .$%? | .$%? | .ab? |
特殊字符 | 描述 |
---|
\n | 断行 |
\r | 回车符 |
\t | 制表符 |
\v | 垂直制表符 |
\f | 换页 |
[\b] | 退格 |
符号 | 描述 | 例子 | 能匹配 | 不能匹配 |
---|
| | 或,其一 | a|b | a,
b | c |
(xxx) | 匹配xxx并获取这一匹配 | yo(o|p) | yoo
或 yop | yoh |
(?:xxx) | 匹配xxx但不获取这一匹配 | y(?:o) | yo | ya |
+ | 重复1次或多次 | yo+ | yo,
yooo | y |
* | 重复0次或多次 | yo* | y,
yoo | yop |
? | 出现0次或1次 | yo? | y,
yo | ye |
?? | ?的懒惰模式,尽可能少匹配 | yoo?? | yo | yoo |
+? | +的懒惰模式 | yo+? | yo | yoo |
*? | *的懒惰模式 | yo*? | y | yo |
{n} | 重复n次 | yo{2} | yoo | yooo |
{n,m} | 重复n到m次 | yo{1,
3} | yo,yooo | yoooo |
{n,} | 重复至少n次 | yo{2,} | yoo,
yooo | yo |