【问题标题】:How to extract text in a range?如何提取范围内的文本?
【发布时间】:2019-07-23 05:06:02
【问题描述】:

例如:

Text=‘ Text1. Text2(Gino).Text(Ant)text. Text4. Text(Fi).’

期望的输出:

Text=‘Text2(Gino). Text(Ant)text. Text(Fi)’

【问题讨论】:

标签: r regex


【解决方案1】:

您似乎只想要文本中带括号的部分,并且这些部分由点分隔。

试试这个正则表达式:

\w+\(\w+\)\w*\.\s*

找到所有匹配项并加入所有匹配项将产生您想要的字符串。

解释:

正则表达式匹配一些单词字符 (\w+),后跟一个左括号 \( 和更多单词字符 (\w+),然后是右括号 \),并且可以选择后跟一些单词字符(\w*)。之后,它会查找点和可选的空白字符。

【讨论】:

  • 可能需要用双斜杠转义(虽然不确定),但在 R 中似乎是这种情况。
【解决方案2】:

不确定这是否是您要查找的内容:

Text <- "Text1. Text2(Gino).Text(Ant)text. Text4. Text(Fi)."
Text <- gsub("Text1. ", "", Text, fixed=TRUE)
Text <- gsub("Text4. ", "", Text, fixed=TRUE)
Text
[1] "Text2(Gino).Text(Ant)text. Text(Fi)."

如果您想使用正则表达式,请将 fixed=TRUE 更改为 fixed=FALSE

【讨论】:

  • 这假设 OP 想要明确删除文本 Text1.,我对此表示怀疑。
  • 我建议对问题进行编辑,以明确引用正则表达式以与标签保持一致。
猜你喜欢
  • 2019-06-25
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多