.
匹配除换行符以外的任意字符
*
表示前面出现的内容可以不出现或者可以连续重复出现任意次
br
ber
beer
be*r
+
出现至少一次
?
出现 0 次或者 1 次
{n}
出现 n 次
{n,}
出现至少 n 次
{n,m}
出现次数大于 n 小于 m
\b
代表单词的开始或结束,也就是单词的分界处
\B
匹配不是 \b
的位置
\d
匹配 0 到 9 的任意数字
\D
匹配不是 \d
的字符
\s
匹配任意形式的空白符
\S
匹配不是 \s
的字符
\w
匹配字母 / 数字 / 下划线 / 汉字
\W
匹配不是 \w
的字符
[]
字符集合
[^x]
匹配除x
以外的任意字符
[^aeiou]
匹配除aeiou
以外的任意字符
[a-z]
匹配 a 到 z 的 26 个字母中任意一个,-
表示范围
.
在字符集合中表示小数点
^
匹配字符串的开始
$
匹配字符串的结束
\
转义字符
()
分组,并对匹配到的内容进行存储
- 每对括号会分配一个编号,顺序从 1 开始。编号 0 表示整个正则表示匹配的内容
- 可以获取括号中匹配到的内容
(?:表达式)
匹配括号中的表达式,但是不存储匹配到的内容
反向引用
对分组匹配存储起来的内容再次进行匹配()
(abc)d\1 可以匹配到的内容为(加粗部分):abcabc abc abcabcdabcd abcabcabcdabc
贪婪模式
匹配的字符越多越好
非贪婪模式
匹配的字符越少越好,在修饰的量词后再加上一个 ?
(?=表达式)
断言某个位置的后面能匹配表达式
(?<=表达式)
断言某个位置的前面能匹配表达式
(?!表达式)
断言某个位置的后面不能匹配表达式
(?<!表达式)
断言某个位置的前面不能匹配表达式