Javascript 匹配字符串中的任意/所有多个单词
我正在尝试编写此正则表达式(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
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)操作符的意思相同。