在 R 正则表达式中匹配换行符

Gustavo du Mortier 2023年1月30日 2020年12月19日
  1. 不同操作系统下的换行符序列
  2. 使用换行序列测试 Regex
在 R 正则表达式中匹配换行符

虽然正则表达式(简称 regex)是一种相当通用的定义字符串模式的方法,但这些模式在不同的平台上可能会有不同的表现,特别是当正则表达式打算匹配特殊字符时,例如换行符。在本文中,我们将分析在 R 中正则表达式中包含换行符的不同方式。

不同操作系统下的换行符序列

在 Linux 环境下,模式\n 与换行序列相匹配。然而,在 Windows 中,换行符与\r\n 匹配,在旧版 Mac 中,与\r 匹配。

如果你需要一个正则表达式来匹配这些平台上的换行符序列,你可以使用模式\r?\n 来匹配\n\r\n 行终止字符序列。

有了这个选项,你就可以覆盖 Linux 和 Windows 环境了,尽管这个模式不能正确匹配旧版 Mac 的换行符。为了覆盖旧版 Mac,你可以使用同样与\r 匹配的模式\r?\n|\r。这个模式更正确的版本是 (\r\n|\r|\n)

使用换行序列测试 Regex

许多网站提供了测试正则表达式的可能性。大多数网站的工作方式就像 Linux 环境一样,在测试\n 模式时,会在带有换行符的字符串上找到匹配。但是当你测试\r\n 模式时,他们却找不到匹配。这些网站的例子是 Regex101Regexr

其他测试网站可能会出现不同的行为,就像不同的操作环境一样。例如,Regex Storm的工作方式更像 Windows 平台,在换行符和\r\n 模式的字符串之间寻找匹配。

相关文章 - R Regex