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

Javascript 匹配字符串中的任意/所有多个单词,javascript,regex,Javascript,Regex,我正在尝试编写此正则表达式(javascript),以匹配word1和word2(如果存在): 这是一个测试。这是word1,这是word2,可能存在也可能不存在。 我试过这些: (word1)。*(word2)? 这将只匹配word1,无论word2是否存在 (word1)。*(word2) 这将匹配两者,但仅当两者都存在时 我需要一个正则表达式来匹配word1和word2-可能存在也可能不存在 var str = "This is a test. Here is word1 and h

我正在尝试编写此正则表达式(javascript),以匹配
word1
word2
(如果存在):

这是一个测试。这是word1,这是word2,可能存在也可能不存在。

我试过这些:


(word1)。*(word2)?

这将只匹配
word1
,无论
word2
是否存在


(word1)。*(word2)

这将匹配两者,但仅当两者都存在时


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

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"]
将对字符串运行正则表达式,并查找所有匹配的命中。在本例中,我们使用允许正则表达式匹配
word1
word2

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


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

为什么不单独测试它们的存在?您确定这不会匹配
(word)(1 | w)(ord2)
。编辑:不,你是对的。@Krycke-不清楚这是否重要。我已经在编辑中提到了,就这样!太琐碎了,我错过了。我感到困惑的是,regex中的
与javascript中的
|
(or)操作符的意思相同。