匹配字符串中的任何/所有多个单词

时间:2015-05-08 01:13:42

标签: javascript regex

我正在尝试编写此regEx(javascript)以匹配word1word2(当它存在时):

This is a test. Here is word1 and here is word2, which may or may not exist.

我试过这些:

(word1).*(word2)?

无论word1是否存在,这都只会与word2匹配。

(word1).*(word2)

这两者都匹配但如果两者都存在。

我需要一个正则表达式来匹配word1和word2 - 这可能存在也可能不存在。

1 个答案:

答案 0 :(得分:15)

var str = "This is a test. Here is word1 and here is word2, which may or may not exist.";
var matches = str.match( /word1|word2/g );
//-> ["word1", "word2"]

String.prototype.match将对字符串运行正则表达式并找到所有匹配的匹配。在这种情况下,我们使用alternation来允许正则表达式匹配word1word2

您需要将全局标记应用于正则表达式,以便match()能够找到所有结果。

如果您只关心字边界的匹配,请使用/\b(?:word1|word2)\b/g