【发布时间】:2016-04-20 15:15:08
【问题描述】:
我的问题是早先question 的直接扩展,关于检测字符串中的连续单词(unigrams)。
在上一个问题中,
不那是相关的
可以通过这个正则表达式检测到:\b(\w+)\s+\1\b
在这里,我想检测连续的二元组(单词对):
是蓝色的然后很亮
理想情况下,我也想知道如何将检测到的模式(重复)替换为单个元素,从而得到:
是蓝色的,然后很亮
(对于这个应用程序,如果重要,我在 R 中使用gsub)
【问题讨论】:
-
这里可能存在边缘情况...您的确切标准是什么?试试
(\b.+\b)\1\b。gsub("(\\b.+\\b)\\1\\b", "\\1", s, perl=T). -
感谢您对我的问题感兴趣。
edge cases是什么意思? -
您提出的解决方案似乎效果很好...
edge cases是指在某些情况下它可能会出现意外行为吗? -
@WiktorStribiżew 您的解决方案将不起作用in all cases
-
@WiktorStribiżew Still does not work...