4.3 反义字符组:
有的时候,我们需要匹配“除了某些字符以外”的其他字符,这时候,我们可以使用反义字
符组,其语法是:“[^字符集合]”
city.jpg
city0.jpg
city1.jpg
city2.jpg
city3.jpg
city4.jpg
citys.jpg
cityss.jpg
__________________________
city[^1-3]\.jpg
注意:这里并没有匹配“city.jpg”。因为,不管是 普通字符组 还是 反义字符组,它总
是 确定一定以及肯定 要匹配一个字符的。换言之,在本例的模式中,“city”和“.”之间是
无论如何需要有一个字符的,而“city.jpg”之间没有,所以它不符合此模式。
5.匹配特殊字符
5.1 匹配元字符
我们先对元字符作一个定义:元字前已经介绍过的,“.”就是一个元字符身的时候,需要使用“\”来对它进行转 很容易就看出“\”也是一个元字符候,就需要对它进行转义:“\”。
回想一下之前讲述的字符组,我们“]”字符的时候,需要分别写作:“[ 举个例子,加入我们需要匹配 “CText
City[0].Name = "Xian";
City[0]_Name = "Shanghai";
City0.Name = "Hangzhou";
City0_Name = "Beijing";
RegEx
City[0].Name
Result
City[0].Name = "Xian";
City[0]_Name = "Shanghai";
City0.Name = "Hangzhou";
City0_Name = "Beijing";
因为没有对“[”、“]”和“.”进行只有一个字符“0”,所以,它仅能匹配有对“.”进行转义,所以它可以匹配
正确的写法:
Text
City0.Name = "Hangzhou";
City0_Name = "Beijing";
RegEx
City\[0\]\.Name
Result
City[0].Name = "Xian";
5.2 匹配空字符
在正则表达式中,比较常用的三类空白字符如下表所示:
元字符 匹配描述
\r 回车
\n 换行
\t Tab 键
5.3.1 匹配数字类型
元字符 匹配描述
\d 所有单个数字,与 [0-9] 相同
\D 所有非数字,与 [^0-9] 相同
Text
City[0].Name = "Xian";
City[1].Name = "Shanghai";
City[a].Name = "Beijing";
RegEx
City\[\d\]\.Name
Result
City[0].Name = "Xian";
City[1].Name = "Shanghai";
City[a].Name = "Beijing";
NOTE:不管 Ignore Case 是否设置为 True,在这种情况下,“\d”与“\D”总是区分大小
写的,下面将介绍的也是一样。
5.3.2 匹配字母、数字、下划线
不管是在程序命名中,还是文件命名中,这一类字符字母、数字 以及 下划线,其正则表达式为“[a-zA-Z0-正则表达式中可以使用“\w ”来代表这一匹配;类所有不属于这一字符集的其他字符:“[^a-zA-Z0-9_]”。 元字符 匹配描述
\w 所有单个大小写字母、数字、下\W 所有单个非大小写字母、非数字
Text
abcde
12345
a1b2c
abcd
1234
RegEx
\w\d\w\d\w
Result
abcde
12345
a1b2c
abcd
1234
5.3.3 匹配空字符
最后一种就是匹配空字符了,其语法如下表所示:
元字符 匹配描述
\s 所有单个空字符,与 [\f\n\r\t\v] 相同
\S 所有单个非空字符,与 [^\f\n\r\t\v] 相同