1

我环顾四周,只设法得到这个:\b(\w+)\b([\w\W]*)\b\1\b,替换为:$1$2

但是,它只能通过删除单词来工作,例如:

word1, word2, word1, word2, word3
*you get:*
word1, word2, word3

我想要的是,如果你有:

"i love you","i love you too", "i love you", "i love you so much"

我应该得到:

"i love you","i love you too", "i love you so much"
4

1 回答 1

2

您有一个匹配整个单词的正则表达式,然后是任何 0+ 字符,直到第 1 组中捕获的整个单词的最后一次出现。

您现在需要一个正则表达式,其中单词边界应替换为",并且\w模式必须替换为[^"](not ")。此外,可以匹配可选的逗号和空格。

Find what : ("(?!\s*,\s*")[^"]+")(.*)\1,?\s*
Replace with : $1$2
.matches newline选项必须为ON如果您的欺骗可能出现在多行中。

否定的(?!\s*,\s*")前瞻将失败所有", "类似的匹配,以免删除字段分隔符。

您将需要多次单击全部替换以删除所有重复项。

请参阅删除"he loves you",和的示例屏幕。"i love you",

在此处输入图像描述

于 2016-12-29T07:18:47.990 回答