我有一个如下所示的正则表达式:
var myRegex =/%([a-z_]*)%/i
这匹配任何子字符串,例如 %foo%
,其中字符串位于两个引号之间。
修改此正则表达式的最佳方法是什么,以便它仅在 %
包围除字符串 foo
之外的任何内容时匹配正则表达式?所以它不会匹配 %foo%
但它会匹配 %bar_%
%anythingelse%
?
最佳答案
你在这里寻找负面的前瞻:
var myRegex = /%(?!foo%)([a-z_]*)%/i;
(?!foo%)
是负前瞻,当我们有 foo%
领先于 %
时会断言失败,因此失败 %foo%
.
关于用于匹配所有不是指定字符串的字符串的javascript正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40852456/