一个正则表达式包含下面一个或多个项:
1.一个字符集
这里的字符集里的字符表示的就是它们字面上的意思.正则表达式最简单的情况就是仅仅由字符集组成,而没有其他的元字符。
2.锚
一个锚指明了正则表达式在一行文本中要匹配的位置,例如^和$就是锚。
3.修饰符
它们用于展开或缩小(即是修改了)正则表达式匹配文本行的范围.修饰符包括了星号、括号和反斜杠符号、
字符
意义
备注
*
匹配重复零次或多次前一字符
不同于通配符前面一定要有字符(任意多个)
+
匹配一个或多个前面的字符.它的作用和*很相似,但唯一的区别是它不匹配零个字 符的情况
?
匹配零或一个前面的字符。它一般用于匹配单个字符
不同于通配符前面一定要有字符(一个)
.
匹配任意字符( 除换行符 )
^
匹配一行的开头,但依赖于上下文环境,可能在正则表达式中表示否定一个字符 集的意思
集合中表示否定
$
匹配行尾
\
转义(escapes) 一个特殊的字符,使这个字符表示原来字面上的意思
|
"或",正则操作符用于匹配一组可选的字符
\<, \>
用于表示单词的边界。\< 匹配词首,\>词尾,如"\<the\>" 匹配单词"the"
\{ \}
指示前面正则表达式匹配的次数
[0-9]\{5\}精确匹配5个数字
{n}
匹配确定的n次
{n,}
至少匹配n次
{n,m}
n-m
\n
第 n 个分组内容
\b
匹配一个单词边界,也就是指单词和空格间的位置。例如,'
但不能匹配 "verb"中的 ''er''
\B
匹配非单词边界。''er\B''能匹配"verb"中的''er'',但不能匹配"never"中的 ''er''
\w
匹配包括下划线的任何单词字符。等价于''[A-Za-z0-9_]''
\W
反上
\d
匹配一个数字字符。等价于[0-9]
\D
反上
\f
匹配一个换页符。等价于\x0c和\cL
\n
匹配一个换行符。等价于\x0a和\cJ
注意和N分组的区别
\r
匹配一个回车符。等价于\x0d和\cM
\s
匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
\S
反伤
\t
匹配一个制表符。等价于\x09 和 \cI
\v
匹配一个垂直制表符。等价于\x0b和\cK