【问题标题】:Replace only parsed regular expression仅替换已解析的正则表达式
【发布时间】:2015-08-20 14:37:51
【问题描述】:

这个问题类似于堆栈问题Regular expression parsed with grepl replacement

目标是解析正则表达式并仅替换匹配的模式。例子:

data <- c("cat 6kg","cat g250", "dog","cat 10 kg", "no cat") 

解析感兴趣的匹配cat

data[grepl("cat",data)]
[1] "cat 6kg"   "cat g250"  "cat 10 kg" "no cat"

理想的结果是将所有出现的cat 替换为chicken

[1] "chicken 6kg"   "chicken g250"  "chicken 10 kg" "no chicken"

知道如何实现这一目标吗?谢谢大家。

【问题讨论】:

    标签: regex r gsub grepl


    【解决方案1】:

    使用 gsub:

    gsub("cat", "chicken", data)
    
    [1] "chicken 6kg"   "chicken g250"  "dog"           "chicken 10 kg" "no chicken"
    

    或者如果你只想要包含 cat 的:

    gsub("cat", "chicken", data[grepl("cat",data)])
    
    [1] "chicken 6kg"   "chicken g250"  "chicken 10 kg" "no chicken" 
    

    【讨论】:

    • 谢谢!它成功了。我忘了提到结果也应该保留“狗”条目(不变)。知道该怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2012-10-17
    • 2019-01-24
    相关资源
    最近更新 更多