我尝试不包含某些字符来进行正则表达式。
我需要显示/%7(.*?);/g,其中不包含“ =”。
我尝试输入 ?!xx = 1 并更改为 ?!((。?)=(。?)) 但这行不通。
请帮助。谢谢。
//Here is my simple regex
reg = /%7((?!xx=1).*?);/g ;
//Here is my string
str = "%7aa; %7bb=11; %7cc=123; %7xx=1; %7yy; %7zz=2;"
//I need
%7aa; and %7yy;
答案 0 :(得分:1)
请尝试使用^
块,而不是使用否定的超前查询:
const reg = /%7([^=;]+);/g;
([^=;]+)
位与您要查找的条件非=
和正则表达式末尾的字符非;
相匹配。
由于您问题的正则表达式也包含捕获组,因此我将捕获组留在了其中。
const reg = /%7([^=;]+);/g;
const str = "%7aa; %7bb=11; %7cc=123; %7xx=1; %7yy; %7zz=2;"
const matches = str.match(reg);
console.log(matches);