在 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