通过前面的学习,相信你已经知道几个很有用的元字符了,如 \b . * ,还有 \d

正则表达式里还有更多的元字符,比如 \s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w 匹配字母或数字或下划线或汉字等。

注:
对中文/汉字的特殊处理是由.Net提供的正则表达式引擎支持的,其它环境下的具体情况请查看相关文档。

下面来看看更多的例子:

\ba\w*\b 匹配 以字母a开头的单词,分析:先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)

\d+ 匹配 1个或更多连续的数字。这里的 +是和*类似的元字符,不同的是* 匹配 重复任意次(可能是0次),而+则匹配 重复1次或更多次

\b\w{6}\b 匹配 刚好6个字符的单词

注:
现在我们说说正则表达式里的单词是什么意思吧:就是不少于一个的连续的\w。不错,这与学习英文时要背的成千上万个同名的东西的确关系不大 :)

表1. 常用的元字符

代码 说明
. 匹配除换行符以外的任意字符
\w 匹配 字母数字下划线汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

元字符^(和数字6在同一个键位上的符号)和 $ 都匹配一个位置,这和 \b 有点类似。^ 匹配你要用来查找的字符串的开头,$ 匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$

这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配 只能不多不少重复2次{5,12}则是 重复的次数不能少于5次,不能多于12次 ,否则都不匹配。

因为使用了 ^$ ,所以输入的整个字符串都要用来和 \d{5,12} 来匹配,也就是说整个输入 必须是5到12个数字 ,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。

和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^$ 的意义就变成了 匹配行的开始处和结束处