我有一个逗号分隔的文本文档中的单词列表。我基本上只是删除了小说中的所有标点符号,所以有很多相同单词的实例。使用Editpad Lite 7删除重复项使用Regex
我找不出如何使用正则表达式来留下每个单词的一个实例。
我使用的EditPad精简版7
任何人都可以给我如何做到这一点的建议。 (如果可能的话)。
我有一个逗号分隔的文本文档中的单词列表。我基本上只是删除了小说中的所有标点符号,所以有很多相同单词的实例。使用Editpad Lite 7删除重复项使用Regex
我找不出如何使用正则表达式来留下每个单词的一个实例。
我使用的EditPad精简版7
任何人都可以给我如何做到这一点的建议。 (如果可能的话)。
假设你有一个文本是一个逗号分隔样的单词列表:
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,
如果你的编辑器支持look-around assertions,你可以用它来删除(即以“”代替)的
(?<=,|^)([^,]*)(?=,)(?=.*,\1(,|$))
所有比赛看到它在行动中RegExr.
这样做的性能可能会相当不好,这取决于文本的长度。如果你需要定期做这些,你可以更好地用你选择的语言编写一个小脚本。
谢谢,我会试试看。 – Yngve
感谢您的回答。我有一个远程知识的唯一编程语言是Python,我实际上已经试图用Python脚本来完成这个任务。不过,我放弃了。我会再尝试。 – Yngve