在处理真实数据时,比如日志文件或者用户输入,我们很难不遇到空白字符。我们常用它们来格式化信息,使内容更易于阅读和扫描,但即使是一个空格也可能让最简单的正则表达式出错。
在正则表达式中最常见的几种空白字符包括:
这些特殊字符可以用来分别匹配它们对应的空白类型。除此之外,还有一个非常实用的特殊字符:\s,它可以匹配上述任意一种空白字符,在处理原始输入文本时非常有用。
在下方的字符串中,你会发现每一行的内容在数字开头之后都有一定数量的空白缩进(注意:数字本身也是需要匹配的一部分)。请尝试编写一个模式,能够匹配每一行中数字和内容之间包含空白字符的情况。请注意,空白字符就像其他普通字符一样,也可以与星号(*)或加号(+)等元字符结合使用。
| Task | Text | |
| 匹配 | 1. abc | ![]() |
| 匹配 | 2. abc | ![]() |
| 匹配 | 3. abc | ![]() |
| 跳过 | 4.abc | ![]() |
| 提示 | 我们只需要匹配那些在编号和 'abc' 之间有空格的行。为此,我们可以使用正则表达式 \d\.\s+abc,它会匹配一个数字、一个实际的句点(需要转义)、一个或多个空白字符,然后是文本 abc。 |