我想用不同的单词替换所有以给定字符开头的单词。尝试过gsub
,str_replace_all
但收效甚微。在这个例子中,我想用 MM 替换所有以 R 开头的单词。gsub
仅正确替换一次:
gsub("^R*\\w+", "MM", "Red, Rome, Ralf")
# [1] "MM, Rome, Ralf"
提前致谢
您必须删除字符串起始锚 ( ^
) 或使用单词向量:
gsub("\\bR\\w+", "MM", "Red, Rome, Ralf")
#[1] "MM, MM, MM"
gsub("^R\\w+", "MM", c("Red", "Rome", "Ralf"))
#[1] "MM" "MM" "MM"
此外,您可能想要“R”而不是“R*”,因为后者可以匹配 0 个或多个“R”实例。上面的正则表达式只匹配具有 2 个或更多字符的单词,其中第一个字符必须是“R”。最后一个正则表达式仅匹配字符串开头的单词。
感谢@flodel 指出第一个正则表达式中缺少的单词边界“\ b”!