2.3 匹配特殊字符
我们已经知道了如何进行普通纯文本匹配和普通字符匹配,如果要匹配的字符就是正则语法特殊字符的一部分要怎么匹配呢?本节我们一块学习正则特殊字符的匹配。
.
字符在正则表达式里面有着特殊的含义。如果模式里面需要一个 .
,就要想办法来告诉正则表达式需要的是 .
字符本身而不是它在正则表达式里的特殊含义。为此,你必须在 .
前端加一个 \
(反斜杠)字符来对它进行转义。 \
是一个元字符(metacharacter, 表示“这个字符有特殊含义,而不表示字符本身。”)。
我们再来验证一次刚才的例子,这次我们使用 \
对 .
进行转义:
例子
.a.\.xls
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
分析
.a.\.xls
解决了问题。第一个 .
匹配 n(前两个匹配结果) 或 s(第三个匹配结果),第 2 个 .
匹配 1(第一和第三个结果)或 2(第二个结果)。接下来 \.
匹配文件名与后缀之间的分隔符 .
本身,最后的 xls 匹配它本身。
在正则表达式里, \
字符永远出现在一个有着特殊含义的字符序列开头,这个序列可以由一个或多个字符构成。刚才看到的是 \.
序列,在后面的教程中还会看到更多使用了 \
字符的例子。
我们将在第 4 章时对特殊字符的用法做专题讲解。
如果需要搜索 \
本身,就要再对 \
字符进行转义;相应的转义序列是两个连续的反斜杠 \\
。
我们刚才讲过, .
可以匹配任何一个字符,这一说法并非绝对准确。在绝大多数的正则表达式实现里, .
只能匹配除换行符 \n
或 \r
之外的字符。在本站提供的在线正则表达式工具中可以打开“点号匹配所有字符(s)”选择以让 .
匹配换行符。
小结
正则表达式经常被简称为模式,它们其实是一些由字符构成的字符串。这些字符可以是普通字符(纯文本)或元字符(有特殊含义的特殊字符)。在这一章里,我们介绍了如何使用普通字符和元字符去匹配单个的字符。 .
可以匹配任何字符。 \
用来对字符进行转义。在正则表达式里,有特殊含义的字符序列总是以字符开头。