特殊字符与字符匹配符

特殊字符

\xn匹配ASCII码值等于n的字符,n必须是两位十六进制整数。例:\x41匹配字符“A”。可以表示所有非打印字符。

\n此处的n是一个一位的八进制数(0-7)。如果\n前面至少有n个匹配子捕获,那么\n是反向引用。

\nm是此处的m和n都是一个一位的八进制数(0-7)。如果\mn前面至少有n个匹配子捕获,那么\mn是反向引用。

\nm1是当n是八进制数(0-3),m和1是八进制数(0-7)时,匹配ASCII码值等于八进制的nml字符。

\un匹配Unicoe编码等于n的字符。此处的n必须是一个4位的十六进制整数。例:\u00A9匹配版权符号

\cx匹配由x指定的控制字符。例:\cM匹配Ctrl+M表示的控制字符,即回车符。X的值必须在A-Z或a-z之间,否则c就是字面意义上的字符“c”

字符匹配符

[...]匹配方括号中包含的字符集中的任意一个字符。例:[abc]可以与a,b,c3个字符中任何一个匹配。如果字符集中要包含]字符,需要将其放在第一位,即紧跟在[后面。若要在[...]中包含\,要用\\。

[^...]匹配方括号中未包含的任意字符。例:[^abc]可匹配a,b,c,3个字符以外的任何字符。

[a-z]匹配任何指定范围内的任意字符。例如,[1-9]匹配1-9之间任何数字字符。若要在方括号中包含连字符-,可以用"\"将其标记为原义字符,例[a\-z]或[-a-z]或[a-z-]。

[^a-z]匹配不在指定范围内的任何字符。

\d匹配任意一个数字字符

\D匹配任意一个非数字字符

\s匹配任意空白字符,包括空格、制表符和换页符等,等效于[\f\n\r\t\v]

\S匹配任意非空白字符

\w匹配任意英文字母和数字类字符以及下划线

\W匹配任何非英文字母和数字类字符,但不包括下划线

.匹配除\n之外的任何单个字符。例:(.)\1匹配除\n之外的两个连续的相同字符

定位符与原义字符

用于文本验证的定位符

用^匹配目标字符串的开始位置,也用于行首匹配,即与\n和\r之后的位置匹配

用$匹配目标字符串结尾位置,也可用于行尾匹配

\b匹配一个字边界,包含字与空格间的位置,以及目标字符串的开始和结束位置,例:er\b匹配neverok中的er,不匹配verb中的er。

\B匹配非字符边界

对特殊字符进行转义

表达式中用到的一些元字符不再表示原来的字面意义,,匹配有特殊字面意义的元字符,使用“\”将字符转为原义字符。需要进行转义的有“$”,“(”,“)”,“*”,“.”,“[”,“]”,“?”,“\”,“/”,“^”“{”“}”“|”