我有一个字符串:
s="a+3*b+4*c+-5*d+-6*e"
我想将其转换为:
s_want="a+3*b+4*c-5*d-6*e"
这里的“+-”被“-”取代。我尝试遵循
> gsub("+-","-",s)
[1] "a+3*b+4*c+-5*d+-6*e"
如您所见,这不起作用。事实上,我也尝试了与其他一些替代品相同的方法。
> gsub("+-","XX",s)
[1] "a+3*b+4*c+XX5*d+XX6*e"
看来“+”符号对R来说是不可见的。我怀疑它与正则表达式有关。让我搜索一下,如果我找到什么,我会发布更新。谢谢。 更新: 经过一番搜索后,我发现“fixed=T”是我正在寻找的解决方案。
> gsub("+-","-",s,fixed=T)
[1] "a+3*b+4*c-5*d-6*e"
感谢所有费心寻找解决方案的人。
最佳答案
由于 +
是正则表达式中的特殊元字符(它重复前一个标记一次或多次),因此您需要对其进行转义或将 +
位于字符类 ([+]
) 内,以便匹配文字 +
符号。
gsub("\\+-","-",s)
或者
gsub("[+]-","-",s)
关于regex - 在R中的字符串中用 "+-"替换 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28828211/