第9课:所有这些空白字符

在处理现实世界中的输入(例如日志文件甚至用户输入)时,很难不遇到空白字符。我们使用它来格式化信息片段,使其更易于阅读和视觉扫描,而单个空格可能会破坏最简单的正则表达式。

您将在正则表达式中使用最常见的空白字符形式是空格)、制表符\t)、换行符\n)和回车符(\r)(在Windows环境中很有用),这些特殊字符分别匹配其各自的空白字符。此外,空白字符特殊字符\s将匹配上面任何一个特定的空白字符,在处理原始输入文本时非常有用。

在下面的字符串中,您会发现每一行的内容都由行索引前的一些空白字符缩进(数字是待匹配文本的一部分)。尝试编写一个模式,该模式可以匹配每行在数字和内容之间包含空白字符的行。请注意,空白字符就像任何其他字符一样,并且可以使用星号和加号等特殊元字符。

练习9:匹配空白字符
任务 文本  
匹配 1. abc To be completed
匹配 2. abc To be completed
匹配 3. abc To be completed
跳过 4.abc To be completed
解答

我们必须仅匹配列表编号和“abc”之间有空格的行。我们可以使用表达式\d\.\s+abc来匹配数字、实际句点(必须转义)、一个或多个空白字符,然后是文本。

如果我们使用克莱尼星号而不是加号,我们也会匹配第四行,而我们实际上希望跳过它。

解决上述任务以继续下一个问题,或阅读解答