【问题标题】:Insert spaces after certain words in R with gsub使用 gsub 在 R 中的某些单词后插入空格
【发布时间】:2014-05-04 10:13:21
【问题描述】:

如果 R 中某些单词不是最后一个单词,如何在它们后面添加空格?

所以对于“伟大”这个词,它会改变:

"whatagreatday" => "whatagreat day"(插入空格)

“多么美好的一天” => “多么美好的一天”(没有变化,已经有空间了)

“我感觉很棒” => “我感觉很棒”(不要在末尾插入空格)

认为使用 gsub 应该相对简单,但无法让类似的 Insert space before some character if space does not exist 在 R 中工作(尽管添加了额外的反斜杠)。

谢谢

【问题讨论】:

  • 添加空格部分相当简单。困难的部分是找出一个单词在哪里结束,下一个单词从哪里开始。例如,您是否将today 分解为to day
  • 如果你的英语子集非常有限,你可能没问题。如果您的文本可以是任何英语,或者更糟的是任何语言,那么我认为您将很难实现自动化。 “某些词”是否意味着您知道要打破什么? (这个问题值得澄清,因为这会影响正则表达式。)
  • 很高兴一次处理一个词,所以只想处理上面例子中的“伟大”。不在乎这些是否是真实的话。此外,“今天”与“今天”不同,因此在我的示例中应该忽略“吃”的出现。

标签: regex r gsub


【解决方案1】:

您可以匹配以下内容:

great\\s*(?!$)

并替换为:

'great '

DEMO

【讨论】:

  • 这适用于 perl 模式,即 gsub("great\\s*(?!$)","great ","whatagreatday",perl=TRUE) 非常感谢。
猜你喜欢
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
相关资源
最近更新 更多