正则表达式之字符类

2018-08-04 16:45 更新

如果想要查找数字,字母或数字,空白是很简单的,因为对应这些字符集合的元字符是已经存在的了,不过要想匹配像元音字母a,e,i,o,u这些没有预先定义元字符的字符集合该怎么做呢?

有个很简单的方法,只需要在方括号里列出它们就可以了,像[aeiou]就匹配任何一个英文元音字母[.?!]匹配标点符号(.或?或!)

我们也可以轻松地指定一个字符范围,像[0-9]代表的含意与\d就是完全一致的:一位数字;同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。

下面是一个更复杂的表达式:\(?0\d{2}[) -]?\d{8}

这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)-空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。

注解:

  1. “(”和“)”也是元字符,后面的分组节里会提到,所以在这里需要使用转义


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号