Javascript 仅获取多个引用中的第一个

Javascript 仅获取多个引用中的第一个,javascript,regex,Javascript,Regex,我有一个正则表达式: (\w+)(?=.*\1) 这成功地匹配了多次出现的单词。不过,有一个问题。考虑这种情况: dog cat dog cat cat 正则表达式匹配cat两次,因为有两次出现cat,后跟cat。但我只希望对出现多次的每个单词进行一次匹配 我该怎么做呢?是的,它可以由正则表达式完成 使用替换,而不是匹配。替换为空字符串。请参阅演示 是否需要在正则表达式中完成?你可以很容易地从结果数组中得到唯一的值。我知道我可以很容易地用其他方法来解决这个问题,但是我想知道如何用正则表达式来

我有一个正则表达式:

(\w+)(?=.*\1)
这成功地匹配了多次出现的单词。不过,有一个问题。考虑这种情况:

dog cat dog cat cat
正则表达式匹配
cat
两次,因为有两次出现
cat
,后跟
cat
。但我只希望对出现多次的每个单词进行一次匹配

我该怎么做呢?

是的,它可以由正则表达式完成

使用
替换
,而不是匹配。替换为
空字符串
。请参阅演示


是否需要在正则表达式中完成?你可以很容易地从结果数组中得到唯一的值。我知道我可以很容易地用其他方法来解决这个问题,但是我想知道如何用正则表达式来完成。想想当有一个单词(没有<代码> \b>代码>它不能匹配单词)时会发生什么。但是问题仍然存在:Word <代码> DEN/<代码>不应该存在。它不再重复了。替换之后,没有办法过滤掉它。@raina77现在,这个问题可以通过运行
replace
来轻松解决,首先针对没有多次出现的单词。是的,我同意:首先过滤掉不重复的单词,然后过滤掉除了最后出现的所有重复。我想我更喜欢字典方法(当单词收集后被过滤掉时),但是您展示的代码肯定是一种有用的技术+(1,总体)@是的,字典是正确的方法。但我对此一无所知:P