1、基本的元字符
元字符 | 说明 |
---|---|
. | 匹配任意单个字符 |
| | 逻辑或操作符 |
[ ] | 匹配字符集合中的一个字符,里面的元字符当做普通字符 |
[^] | 对字符集合求非 |
- | 定义一个区间(例如[A-Z]) |
\ | 对下一个字符转义 |
2、数量元字符
元字符 | 说明 |
---|---|
* | 匹配前一个字符(子表达式)的零次或多次重复,等价于{0,} |
*? | *的懒惰型版本 |
+ | 匹配前一个字符(子表达式)的一次或多次重复,等价于{1,} |
+? | +的懒惰型版本 |
? | 匹配前一个字符(子表达式)的零次或一次重复,等价于{0,1} |
{n} | 匹配前一个字符(子表达式)的n次重复 |
{m,n} | 匹配前一个字符(子表达式)至少m次,且至多n次重复 |
{n, } | 匹配前一个字符(子表达式)n次或更多次重复 |
{n, }? | {n, }的懒惰型版本 |
3、位置元字符
元字符 | 说明 |
---|---|
^ | 匹配字符串的开头 |
\A | 匹配字符串的开头 |
$ | 匹配字符串的结束 |
\Z | 匹配字符串的结束 |
\< | 匹配单词的开头 |
\> | 匹配单词的结束 |
\b | 匹配单词边界(开头和结束),单词被定义为 Unidcode 的字母数字或下横线字符 |
\B | \b的反义,匹配非单词边界 |
4、特殊字符元字符
元字符 | 说明 |
---|---|
[\b] | 退格字符 |
\c | 匹配一个控制字符 |
\d | 匹配任意数字字符 |
\D | \d的反义 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\s | 匹配一个空白字符,包括 [ \t\n\r\f\v] 以及其他空白字符 |
\S | \s的反义 |
\t | 制表符(Tab字符) |
\v | 垂直制表符 |
\w | 匹配任意字母数字字符或下划线字符 |
\W | \w的反义 |
\x | 匹配一个十六进制数字 |
\0 | 匹配一个八进制数字,由反斜杠后面三位数字表示(必须三位,不够用0补位) |
5、回溯引用和前后查找
元字符 | 说明 |
---|---|
( ) | 定义一个子表达式 |
\1 | 匹配第1个子表达式:\2代表第2个表达式,以此类推。数字范围是1-99 如果序号是以 0 开头,或者 3 个数字的长度。那么不会被用于引用对应的子组,而是用于匹配八进制数字所表示的 ASCII 码值对应的字符 |
?= | 向前查找 |
?<= | 向后查找 |
?! | 负向前查找 |
?<! | 负向后查找 |
?( ) | 条件(if then) |
?( )| | 条件(if then else) |
6、大小写转换
元字符 | 说明 |
---|---|
\E | 结束\L或\U转换 |
\l | 把下一个字符转换成小写 |
\L | 把后面的字符转换成小写,直到遇见\E为止 |
\u | 把下一个字符转换成大写 |
\U | 把后面的字符转换成大写,直到遇见\E为止 |
7、匹配模式
元字符 | 说明 |
---|---|
(?m) | 分行匹配模式 |
摘自《正则表达式必知必会》