使用str_replace_all替换数字前的所有内容

时间:2018-10-28 20:36:36

标签: r

我希望使用str_replace_all来替换字符串中数字前的所有内容。

我下面的代码不起作用

require("stringr")
county <- c("ctr27", "sb03", "nst08", "nst25", "st15",  "st26")
str_replace_all(county, "nst[^0-9.]|st[^0-9.]", "ami")

预期产量

"ctr27" "sb03" "ami08" "ami25" "ami15"  "ami26"

2 个答案:

答案 0 :(得分:1)

可以使用positive lookahead来实现:

str_replace_all(county, "nst|st(?=\\d+)", "ami")
# [1] "ctr27" "sb03"  "ami08" "ami25" "ami15" "ami26"

答案 1 :(得分:1)

如示例显示单个替换实例,我们也可以使用str_replace。此外,我们可以将数字捕获为一组并替换为反向引用

str_replace(county, "nst|st(\\d+)", "ami\\1")
#[1] "ctr27" "sb03"  "ami08" "ami25" "ami15" "ami26"