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