在 R 正規表示式模式中轉義字元

由於 R 和正規表示式共享轉義字元 \,為 grepsubgsub 或任何其他接受模式引數的函式構建正確的模式通常需要配對反斜槓。如果你構建一個三項角色向量,其中一個專案有一個換行符,另一個是一個製表符和一個都沒有,並且希望是將換行符或製表符變成 4 個空格,然後構造需要一個反斜槓,但是配對的反斜槓:

x <- c( "a\nb", "c\td", "e    f")
x  # how it's stored
   #  [1] "a\nb"   "c\td"   "e    f"
cat(x)   # how it will be seen with cat
#a
#b c    d e    f

gsub(patt="\\n|\\t", repl="    ", x)
#[1] "a    b" "c    d" "e    f"

請注意,模式引數(如果它首先出現是可選的,只需要部分拼寫)是唯一要求加倍或配對的引數。替換引數不需要加倍需要轉義的字元。如果你希望所有換行和 4 空格出現都替換為製表符,那麼它將是:

gsub("\\n|    ", "\t", x)
#[1] "a\tb" "c\td" "e\tf"