我有一个简单的正则表达式,如下所示:
var myRegex = /%(?!FOO%)([A-Za-z_]*)%/g;
我要做的是找到两个不是%
的文字FOO
引号之间的任何实例。所以BAR
,WHATEVER
之类的东西都会匹配。
我的问题是,扩展它以寻找多个字符串的最佳方法是什么?假设我想匹配任何非FOO
或BAR
的内容。
var myRegex = /%(?!(FOO|BAR)%)([A-Za-z_]*)%/g;
我尝试了上面的变体,但似乎只找到了第一个匹配项FOO
。我怎样才能找到它们?
答案 0 :(得分:0)
你可以尝试这样的事情:(假设这是你想要完成的事情)
一般方式( w / lookbehind支持)
(?<=%)(?!FOO|BAR)(\w+)(?=%)
JavaScript方式( w / o lookbehind支持)
var str = '%FOO%HELLO%BAR%WORLD%';
var match = str.match(/%(?!FOO|BAR)(\w+)(?=%)/g).map(e => {
return e.replace('%', '');
});
console.log(match);
&#13;