javascript 正则表达式单词,用于匹配包含以“ing”结尾的单词但不包含单词anything,something,nothing的文本

pu82cl6c  于 2023-01-19  发布在  Java
关注(0)|答案(2)|浏览(94)

我正在编写一个练习英语的应用程序,我需要一个javascript正则表达式来查找mongoDb集合中的所有文档,在这些文档中,“答案”属性包含一个以ing结尾的单词,并从匹配中排除一些单词,如everything,something,anything,nothing。
我现在有以下查询:

{ '$or': [ { answer: /ing/i } ],
I20190303-13:26:00.915(-4)?   answer: /^(?!.*(\bsomething\b|\banything\b|\beverything\b|\bthing\b|\bnothing\b))/gi }

不幸的是,我当前的查询排除了以下字符串:* *'I am doing nothing。'因为文本中没有任何内容。但我希望这样的文本匹配,因为doing存在。
我想从数据库中获取答案包含一个或多个动名词的所有问题,不幸的是,有些以
ing**结尾的单词不是动名词。

iezvtpos

iezvtpos1#

Negative Lookbehind应该可以工作。

db.collection.find({
  "key": {
    $regex: "(?<!noth|anyth)ing",  //match ing, but not if it is part of nothing, anything
    $options: "i"
  }
})

Demo

dgtucam1

dgtucam12#

您可以使用下面的正则表达式来查找MongoDB集合中的所有文档,其中'answer'属性包含以“ing”结尾的单词,并排除一些单词,如“everything”、“som

/\b(?!(everything|something|anything|nothing)\b)\w+ing\b/gi

我希望这能解决你的问题。

相关问题