我有这样的字符串:

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

我想检查我的字符串是否包含 homefire
为此,我使用了这个正则表达式:
var words = str.match(/(home)|(fire)/ig)

和这样的输出:
["Home", "fire", "fire"]

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

感谢您的帮助。

最佳答案

您可以使用这个基于负前瞻的正则表达式来确保仅当文本中不再存在相同的单词时才匹配所需的单词,从而匹配最后一次出现的搜索单词:

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

输出:
["Home", "fire"]

RegEx Demo

关于javascript - 正则表达式忽略重复匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32375217/

10-12 18:35