替换R中括号内的文本

标签 r

Possible Duplicate:
Remove text inside brackets, parens, and/or braces

我想替换大型文本文件中的括号和括号之间的文本。

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

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)?

最佳答案

是的,使用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 个或多个空格。
  • 由于 () 是正则表达式中的特殊符号,因此您需要转义这些符号,即 (\\(
  • .*?是通配符查找,用于查找所有字符,其中?表示以非贪婪方式查找。这是必要的,因为默认情况下正则表达式是贪婪的。换句话说,默认情况下,正则表达式将从第一个左括号开始匹配,并在最后一个右括号结束匹配。

关于替换R中括号内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13529360/

相关文章:

r - 如何获得向量的所有连续子集?

r - 通胀调整价格套餐?

r - 在 "for"循环中绘制几张不同大小的图片

javascript - 在 Shiny 的 R 应用程序上了解访客身份

r - dudi.hillsmith x * w : non-numeric argument to binary operator 中出现错误

r - 带有 shinyTable 和 submitButton 的可编辑表格

java - 是否有任何选项可以将 R 与 NetSuite 连接以定期向 NetSuite 用户提供分析结果?

r - 计算 R 中范围内的数值

r - 找到重叠区域并提取各自的值

r - 防止 R 将矩阵降级为向量