我想在大文本文件中替换括号和括号之间的文本。
示例输入(文本文件中的内容):
Keep me (Remove Me 1). Again keep me (Remove Me 2). Again again keep me (Remove Me 3).
输出(新文本文件中的内容):
Keep me. Again keep me. Again again keep me.
是否可以在R中执行此操作(例如使用grep)?
答案 0 :(得分:26)
是的,使用gsub()
用空字符串替换所有不需要的文本。
x <- "Keep me (Remove Me 1). Again keep me (Remove Me 2). Again again keep me (Remove Me 3)."
这是你想要的正则表达式:
gsub( " *\\(.*?\\) *", "", x)
[1] "Keep me. Again keep me. Again again keep me."
它的工作原理如下:
*?
在括号之前(及之后)找到0个或更多空格。(
和)
是正则表达式中的特殊符号,因此您需要转义这些符号,即(\\(
.*?
是一个通配符查找,用于查找所有字符,其中?
表示以非贪婪的方式查找。这是必要的,因为默认情况下正则表达式是贪婪的。换句话说,默认情况下,正则表达式将在第一个左括号处开始匹配,并在最后一个右括号处结束匹配。