正则表达式使用
测试地址:http://tool.oschina.net/regex/
一般字符:
- . 任意一个除换行符之外的字符;例子:a.b 匹配 adb acb a*b ...
- \ 转义字符,使后面的符号保持原意;例子:a\.c 匹配a.c a\\c匹配a\c
- [...] 字符集合,只要属于里面任意一个就满足匹配;例子:[a-zA-Z]匹配一个大小写字母 [0-9]匹配一个数字
- [^...] 字符集合取反;例子:[^a-zA-Z] 匹配一个非字母
预定义字符:
- \d 表示数字:[0-9] 匹配一个数字
- \D 非数字:[^0-9]=[^\d] 匹配一个非数字
- \s 空白字符:[空格\t\r\n\f\v]
- \S 非空白字符:[^\s]
- \w 字母或数字或_:[a-zA-Z0-9_]
- \W 非字母或数字或_:[^\w]
数量词(用在字符之后):
- * 匹配前一个字符0次或无限次 ;举例:abc* 匹配ab和abccc...
- + 匹配前一个字符1次或无限次;举例:abc+ 匹配abc和abccc...
- ? 匹配前一个字符0次或1次;举例:abc? 匹配ab和abc
- {m} 匹配前一个字符m次;举例:ab{2}c 匹配abbc
- {m,n} 匹配前一个字符m到n次;举例:ab{1,2}c 匹配abc和abbc
边界字符:
- ^ 开始字符 \A
- $ 结束字符 \Z
- \b 匹配单词和非单词(空格换行\w)中间的东西
- \B 取\b反
逻辑和分组:
- | 或;举例:today is a (good|bad) day 匹配today is a goodday和today is a bad day
- () 分组,表示一个整体;举例:(good){2} 匹配goodgood
- \<number> 表示编号分组匹配;举例:(\d)abc\1 匹配1abc1和5abc5等