一个正则表达式包含下面一个或多个项:
1.一个字符集
这里的字符集里的字符表示的就是它们字面上的意思.正则表达式最简单的情况就是仅仅由字符集组成,而没有其他的元字符。
2.锚
一个锚指明了正则表达式在一行文本中要匹配的位置,例如^和$就是锚。
3.修饰符
它们用于展开或缩小(即是修改了)正则表达式匹配文本行的范围.修饰符包括了星号、括号和反斜杠符号
字符 意义 备注 * 匹配重复零次或多次前一字符 不同于通配符前面一定要有字符 + 匹配一个或多个前面的字符.它的作用和*很相似,但唯一的区别是它不匹配零个字 符的情况 ? 匹配零或一个前面的字符。它一般用于匹配单个字符 . 匹配任意字符( 除换行符 ) ^ 匹配一行的开头,但依赖于上下文环境,可能在正则表达式中表示否定一个字符 集的意思 集合中表示否定 $ 匹配行尾 \ 转义(escapes) 一个特殊的字符,使这个字符表示原来字面上的意思。"\$"表示 了原来的字面意思"$" | "或",正则操作符用于匹配一组可选的字符 \<, \> 用于表示单词的边界。\< 匹配词首,\>词尾,如"\<the\>" 匹配单词"the" \{ \} 指示前面正则表达式匹配的次数 [0-9]\{5\}" 精确匹配5个数字(从0到9的数字) {n} 匹配确定的n次 {n,} 至少匹配n次 {n,m} n-m \n 第 n 个分组内容 \b 匹配一个单词边界,也就是指单词和空格间的位置。例如,''er\b'' 可以匹配"never" 中的''er'' 但不能匹配 "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