. 匹配除换行符以外的任意字符
\ 做为转意,即通常在"\"后面的字符不按原来意义解释,
\/ 一个 / 直接量
\\ 一个 \ 直接量
\. 一个 . 直接量
\* 一个 * 直接量
\+ 一个 + 直接量
\? 一个 ? 直接量
\| 一个 | 直接量
\( 一个 ( 直接量
\) 一个 ) 直接量
\[ 一个 [ 直接量
\] 一个 ] 直接量
\{ 一个 { 直接量
\} 一个 } 直接量
^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba+/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba?/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n到m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\cX X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个数字符,/\d/ = /[0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\z 字符串结尾(类似$,但不受处理多行选项的影响)
反义:
\A 字符串开头(类似^,但不受处理多行选项的影响)
\B 匹配一个单词的非边界
\D 匹配一个非数字符,/\D/ = /[^0-9]/
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
\Z 字符串结尾或行尾(不受处理多行选项的影响)
[^xyz] 不匹配这个集合中的任何一个字符
后向引用:
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。
(exp) 匹配exp,并捕获文本到自动命名的组里
\k<Word> 要反向引用这个名称为Word的分组捕获的内容
\1 代表分组1匹配的文本,如\b(\w+)\b\s+\1\b可以用来匹配重复的单词, \2同理
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
零宽断言:
接下来的四个用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b,^,$那样用于指定一个位置,这个位置应该满足一定的条件(即断言)
(?=exp) 零宽度正预测先行断言,匹配exp前面的位置,比如\b\w+(?=ing\b),如查找I'm singing while you're dancing.时,它会匹配sing和danc。
(?<=exp) 零宽度正回顾后发断言,匹配exp后面的位置
(?!exp) 零宽度负预测先行断言,匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

(?#comment) 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复

参考链接http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

http://www.360doc.com/content/13/0202/13/10977730_263747982.shtml

http://baike.baidu.com/view/94238.htm

 

标签: 正则表达式

评论已关闭