使用捕獲組重新排列字串

如果要更改字串的順序,可以使用 pattern 中的括號將字串的各個部分組合在一起。這些組可以在 replacement 引數中使用連續數字進行加法。

以下示例顯示如何將“surname,forename”形式的名稱向量重新排序為 forename surname 形式的向量。

library(randomNames) 
set.seed(1)

strings <- randomNames(5)
strings
# [1] "Sigg, Zachary"        "Holt, Jake"           "Ortega, Sandra"       "De La Torre, Nichole"
# [5] "Perkins, Donovon"  

sub("^(.+),\\s(.+)$", "\\2 \\1", strings)
# [1] "Zachary Sigg"        "Jake Holt"           "Sandra Ortega"       "Nichole De La Torre"
# [5] "Donovon Perkins"    

如果你只需要姓氏,你可以只解決第一對括號。

sub("^(.+),\\s(.+)", "\\1", strings)
# [1] "Sigg"        "Holt"        "Ortega"      "De La Torre" "Perkins"