使用捕获组重新排列字符串
如果要更改字符串的顺序,可以使用 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"