我正在尝试编写此regEx(javascript)以匹配word1
和word2
(当它存在时):
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 - 这可能存在也可能不存在。
答案 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来允许正则表达式匹配word1
或word2
。
您需要将全局标记应用于正则表达式,以便match()
能够找到所有结果。
如果您只关心字边界的匹配,请使用/\b(?:word1|word2)\b/g
。