正则表达式
下表列出了常用的正则表达式元字符:
1) 元字符
| 元字符 | 匹配内容 | 
|---|---|
| . | 匹配除换行符以外的任意字符 | 
| \w | 匹配所有普通字符(数字、字母或下划线) | 
| \s | 匹配任意的空白符 | 
| \d | 匹配数字 | 
| \n | 匹配一个换行符 | 
| \t | 匹配一个制表符 | 
| \b | 匹配一个单词的结尾 | 
| ^ | 匹配字符串的开始位置 | 
| $ | 匹配字符串的结尾位置 | 
| \W | 匹配非字母或数字或下划线 | 
| \D | 匹配非数字 | 
| \S | 匹配非空白符 | 
| a|b | 匹配字符 a 或字符 b | 
| () | 正则表达式分组所用符号,匹配括号内的表达式,表示一个组。 | 
| [...] | 匹配字符组中的字符 | 
| [^...] | 匹配除了字符组中字符的所有字符 | 
2) 量词
| 量词 | 用法说明 | 
|---|---|
| * | 重复零次或者更多次 | 
| + | 重复一次或者更多次 | 
| ? | 重复0次或者一次 | 
| {n} | 重复n次 | 
| {n,} | 重复n次或者更多次 | 
| {n,m} | 重复n到m次 | 
3) 字符组
 有时也会出现各种字符组成的字符组,这在正则表达式中使用[]表示,如下所示:
| 正则 | 待匹配字符 | 匹配结果 | 说明 | 
|---|---|---|---|
| [0123456789] | 8 | True | 在一个字符组里枚举所有字符,字符组里的任意一个字符 和"待匹配字符"相同都视为可以匹配。  | 
| [0123456789] | a | False | 由于字符组中没有 "a" 字符,所以不能匹配。 | 
| [0-9] | 7 | True | 也可以用-表示范围,[0-9] 就和 [0123456789] 是一个意思。 | 
| [a-z] | s | True | 同样的如果要匹配所有的小写字母,直接用 [a-z] 就可以表示。 | 
| [A-Z] | B | True | [A-Z] 就表示所有的大写字母。 | 
| [0-9a-fA-F] | e | True | 可以匹配数字,大小写形式的 a~f,用来验证十六进制字符。 | 
贪婪模式非贪婪模式
正则表达式默认为贪婪匹配,也就是尽可能多的向后匹配字符,比如 {n,m} 表示匹配前面的内容出现 n 到 m 次(n 小于 m),在贪婪模式下,首先以匹配 m 次为目标,而在非贪婪模式是尽可能少的向后匹配内容,也就是说匹配 n 次即可。
贪婪模式转换为非贪婪模式的方法很简单,在元字符后添加“?”即可实现,如下所示:
| 元字符(贪婪模式) | 非贪婪模式 | 
|---|---|
| * | *? | 
| + | +? | 
| ? | ?? | 
| {n,m} | {n,m}? | 
正则表达式转义
如果使用正则表达式匹配特殊字符时,则需要在字符前加\表示转意。常见的特殊字符如下:
* + ? ^ $ [] () {} | \
    虚心学习、丰富自己
                    
                
                
            
        
浙公网安备 33010602011771号