正则表达式
基础匹配符号
.
:匹配除了新行以外的任何单个字符。^
:匹配字符串的开始。$
:匹配字符串的结束。*
:匹配前面的子表达式零次或多次。+
:匹配前面的子表达式一次或多次。?
:匹配前面的子表达式零次或一次。{n}
:匹配确定的n
次。{n,}
:至少匹配n
次。{n,m}
:最少匹配n
次且不超过m
次。
字符类
[abc]
:匹配任何一个包含在括号中的字符(相当于a
或b
或c
)。[^abc]
:匹配任何不在括号中的字符。[0-9]
:匹配任何数字。类似于\d
。[a-z]
:匹配任何小写字母。[A-Z]
:匹配任何大写字母。[a-zA-Z0-9]
:匹配任何字母和数字。
预定义字符类
\d
:匹配一个数字字符。等价于[0-9]
。\D
:匹配一个非数字字符。等价于[^0-9]
。\s
:匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]
。\S
:匹配任何非空白字符。等价于[^ \f\n\r\t\v]
。\w
:匹配包括下划线的任何单词字符。等价于[A-Za-z0-9_]
。\W
:匹配任何非单词字符。等价于[^A-Za-z0-9_]
。
断言
(?=...)
:正向肯定预查,之后的内容需要匹配指定的模式。(?!...)
:正向否定预查,之后的内容不需要匹配指定的模式。(?<=...)
:反向肯定预查,之前的内容需要匹配指定的模式。(?<!...)
:反向否定预查,之前的内容不需要匹配指定的模式。
分组与逻辑
(pattern)
:匹配pattern
并获取这一匹配。|
:逻辑“或”操作符。匹配左边或者右边的表达式。
转义字符
\
:用于转义特殊字符,使之成为字面意义上的字符,如\.
表示一个真正的点。