字符类

欢马劈雪     最近更新时间:2020-08-04 05:37:59

513

要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母 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})。