元字符

2018-08-12 22:03 更新

元字符

现在你已经知道几个很有用的元字符了,如\b,.,*,还有 \d.正则表达式里还有更多的元字符,比如\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w 匹配字母或数字或下划线或汉字等。

下面来看看更多的例子:

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

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

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

表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 号能匹配这个正则表达式的话,那就符合要求了。

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

正则表达式引擎通常会提供一个“测试指定的字符串是否匹配一个正则表达式”的方法,如 JavaScript 里的RegExp.test()方法或.NET里的Regex.IsMatch()方法。这里的匹配是指是字符串里有没有符合表达式规则的部分。如果不使用^$的话,对于\d{5,12}而言,使用这样的方法就只能保证字符串里包含 5 到 12 连续位数字,而不是整个字符串就是 5 到 12 位数字。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号