替换R中括号内的文本

use*_*932 7 r

可能重复:
删除括号,parens和/或大括号内的文本

我想在大文本文件中替换括号和括号之间的文本.

示例输入(文本文件中的内容):

Keep me (Remove Me 1). Again keep me (Remove Me 2). Again again keep me (Remove Me 3).
Run Code Online (Sandbox Code Playgroud)

输出(新文本文件中的内容):

Keep me. Again keep me. Again again keep me. 
Run Code Online (Sandbox Code Playgroud)

是否可以在R中执行此操作(例如使用grep)?

And*_*rie 26

是的,用于gsub()用空字符串替换所有不需要的文本.

x <- "Keep me (Remove Me 1). Again keep me (Remove Me 2). Again again keep me (Remove Me 3)."
Run Code Online (Sandbox Code Playgroud)

这是你想要的正则表达式:

gsub( " *\\(.*?\\) *", "", x)
[1] "Keep me. Again keep me. Again again keep me."
Run Code Online (Sandbox Code Playgroud)

它的工作原理如下:

  • *? 在括号之前(和之后)找到0个或更多个空格.
  • 由于()是正则表达式中的特殊符号,你需要逃避这些,即(\\(
  • .*?是一个通配符查找所有字符,其中的?方法是以非贪婪的方式查找.这是必要的,因为默认情况下正则表达式是贪婪的.换句话说,默认情况下,正则表达式将在第一个开始括号处开始匹配,并在最后一个右括号处结束匹配.

  • 这几天答案的15分钟几乎没有.我只是侥幸成功,因为它仍然是感恩节假期,许多常客仍然在吃火鸡三明治. (7认同)