正则表达式匹配相同单词的不同版本

时间:2015-09-28 18:23:36

标签: javascript regex

我正在尝试使用正则表达式来匹配同一个单词的不同版本。

例如:

如果我有jQuery,jquery,JQUERY,Jquery - >他们应该匹配,总匹配数应该是4。 我试过了:

((jquery?)||(jQuery?)||(JQUERY?)||(Jquery))

但它给了我每个单词的数量。(即jquery:1,jQuery:1,JQUERY:1,JQuery:1)

我需要 jquery:4

我的整个代码:

var wordMatch = /((react?)|(angular?)|(javascript?)|(node?)|(mongo ?)|((jquery?)||(jQuery?)||(JQUERY?))|(backbone?))/gmi;

2 个答案:

答案 0 :(得分:3)

首先,不区分大小写的匹配是i标志的用途,并且您已经在使用它。 /jquery/i会抓住jqueryjQuery,因此您在正则表达式中不需要这么多选项。

此外,您不清楚自己要对?做什么,但似乎错了。 ?使前面的字符或组可选,因此/jquery?/会同时匹配jqueryjquer - 可能不是您想要的。

答案 1 :(得分:0)

我认为你正在寻找

/(string)/gi

这将返回同一组中“string”的所有匹配,而不是关心套管。