我有一个像这样的字符串
x<-c("This is a test (120)")
我需要替换测试之间的空白区域(以便文本将像这样
x<-c("This is a test(120)")
我试过这个
s<-gsub("\t\v\(", "", x)
不工作,任何意见都会受到赞赏。
答案 0 :(得分:3)
使用前瞻:
gsub("\\s+(?=\\()", "", x, perl=TRUE)
[1] "This is a test(120)"
答案取决于您需要的更多规格。要删除开口括号前面的所有空格吗?还是只有一个?或者只在包含数字的括号前面?
答案 1 :(得分:2)
一种简单的方法是使用fixed = TRUE
,如:
gsub(" (", "(", x, fixed = TRUE)
或:
gsub(" \\(", "\\(", x)
答案 2 :(得分:2)
你必须在R中“双重逃避”事情,一个用于R,一个用于正则表达式:
s <- gsub('\\s\\(', '(', x)
也就是说,根据您的具体用例,您可能希望这更加强大:
s <- gsub('(.+) \\((.+)\\)', '\\1(\\2)', x)