2011-09-23 72 views
1

我有一个逗号分隔的文本文档中的单词列表。我基本上只是删除了小说中的所有标点符号,所以有很多相同单词的实例。使用Editpad Lite 7删除重复项使用Regex

我找不出如何使用正则表达式来留下每个单词的一个实例。

我使用的EditPad精简版7

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

回答

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, 
+0

感谢您的回答。我有一个远程知识的唯一编程语言是Python,我实际上已经试图用Python脚本来完成这个任务。不过,我放弃了。我会再尝试。 – Yngve

1

如果你的编辑器支持look-around assertions,你可以用它来删除(即以“”代替)的

(?<=,|^)([^,]*)(?=,)(?=.*,\1(,|$)) 

所有比赛看到它在行动中RegExr.

这样做的性能可能会相当不好,这取决于文本的长度。如果你需要定期做这些,你可以更好地用你选择的语言编写一个小脚本。

+0

谢谢,我会试试看。 – Yngve