跳到主要内容

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)”选择以让 . 匹配换行符。

小结

正则表达式经常被简称为模式,它们其实是一些由字符构成的字符串。这些字符可以是普通字符(纯文本)或元字符(有特殊含义的特殊字符)。在这一章里,我们介绍了如何使用普通字符和元字符去匹配单个的字符。 . 可以匹配任何字符。 \ 用来对字符进行转义。在正则表达式里,有特殊含义的字符序列总是以字符开头。

该内容基于 《正则表达式必知必会》 二度创作
转载请遵守原作者相关协议并注明本页地址
https://iamhefang.cn/tutorials/正则表达式/第二章-匹配单个字符/2.3-匹配特殊字符