R中文本模式的补充

时间:2017-10-26 12:21:02

标签: r regex

我正在尝试对我的数据中出现的模式使用字符串替换。我的模式目前看起来像这样 -

a&b|c

我想用它代替这样的东西 -

(?=.*a)(?=.*b)|c

在R中实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我们可以使用sub来匹配字符串开头(^)后跟&和另一个字母的字母,将其捕获为一个组((...) )并用反向引用替换我们需要添加的模式

sub("^([a-z])&([a-z])", "(?=.*\\1)(?=.*\\2)", str1)
#[1] "(?=.*a)(?=.*b)|c"

数据

str1 <- "a&b|c"