使用Editpad Lite 7删除Regex的重复项

时间:2011-09-23 08:55:04

标签: regex text

我在文本文档中有逗号分隔的单词列表。我基本上只删除了小说中的所有标点符号,因此有很多相同单词的实例。

我无法找到如何使用正则表达式只留下每个单词的一个实例。

我正在使用Editpad Lite 7.

有人可以就如何做到这一点给我建议。 (如果可能的话)。

2 个答案:

答案 0 :(得分:1)

如果您的编辑支持look-around assertions,您可以使用它删除(即替换为“”)

的所有匹配项
(?<=,|^)([^,]*)(?=,)(?=.*,\1(,|$))

RegExr.

中查看此操作

根据文本的长度,这可能会非常糟糕。如果你需要定期这样做,你最好用你选择的语言编写一个小脚本。

答案 1 :(得分:1)

假设您的文字是以逗号分隔的单词列表,例如:

hello,world,hello,abc,world

并且您想要删除重复的单词,以便生成的文本为:

hello,world,abc

我认为你不能使用Editpad Lite 7中的正则表达式来做到这一点。最好的办法是使用编程语言来实现这一目标。这是一个使用PHP的简单示例:

$text = "hello,world,hello,abc,world";
$seen = array();
foreach (explode(',', $text) as $word) {
    if (isset($seen[$word])) continue;
    $seen[$word] = true;
    print $word . ',';
}
// Outputs: hello,world,abc,