我正在寻找一种方法来替换以下每个字符中的所有_(例如'')
x <- c('test_(match)','test_xMatchToo','test_a','test_b')
Run Code Online (Sandbox Code Playgroud)
当且仅当_后面跟着(或x.所以想要的输出是:
x <- c('test(match)','testxMatchToo','test_a','test_b')
Run Code Online (Sandbox Code Playgroud)
怎么做(使用任何包都没问题)?
使用前瞻:
_(?=[(x])
Run Code Online (Sandbox Code Playgroud)
前瞻的做法是断言模式匹配,但实际上并不匹配它正在展望的模式.所以,在这里,最终的匹配文本只包含下划线,但是前瞻声明它后跟一个 x或(.
你的R代码看起来有点像这样(为清晰起见,每行一个arg):
gsub(
"_(?=[(x])", # The regex
"", # Replacement text
c("your_string", "your_(other)_string"), # Vector of strings
perl=TRUE # Make sure to use PCRE
)
Run Code Online (Sandbox Code Playgroud)