正则表达式忽略重复的匹配

时间:2015-09-03 12:08:18

标签: javascript regex

我有这样的字符串:

var str = "When Home is on fire go and dance in fire"

我想检查我的字符串是否有homefire

为此,我使用了这个正则表达式:

var words = str.match(/(home)|(fire)/ig)

和输出如下:

["Home", "fire", "fire"]

正如您所看到的fire匹配两次,我想忽略重复的匹配,只显示一次。

感谢帮助。

1 个答案:

答案 0 :(得分:4)

你可以使用这种基于正面的负向前导来确保只有当文本中不存在相同的单词时才匹配所需的单词,从而匹配最后一次出现的搜索单词:

/(home|fire)(?!.*\1)/ig

<强>输出:

["Home", "fire"]

RegEx Demo