正则表达式学习记录-字符类
2011-08-27 17:04
260 查看
要想查找数字,字母或数字,空白是很简单的,因为已经有了对应这些字符集合的元字符,但是如果你想匹配没有预定义元字符的字符集合(比如元音字母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})。
很简单,你只需要在方括号里列出它们就行了,像[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})。
相关文章推荐
- 正则表达式学习记录
- ios学习记录(正则表达式)
- 正则表达式学习记录-分枝条件
- 正则表达式学习记录
- 正则表达式学习记录-分组
- python 学习记录(2)—re 正则表达式模块的使用
- 正则表达式学习记录-反义
- 正则表达式学习记录-后向引用
- 正则表达式——python(学习记录)
- java 正则表达式的学习记录
- 正则表达式学习记录-零宽断言
- python核心编程学习记录之正则表达式
- Linux学习记录--正则表达式与其应用 推荐
- 我的正则表达式学习记录
- 学习后对正则表达式使用记录(个人)
- Python学习记录:正则表达式
- 【记录】正则表达式学习第3天(正则学习笔记),又解决了个实际问题。
- 鸟哥的linux私房菜学习记录之正则表达式
- MySQL学习足迹记录07--数据过滤--用正则表达式进行检索
- python 正则表达式简单学习记录