Javascript-正则表达式不包含某些字符

时间:2019-01-06 17:12:50

标签: javascript regex

我尝试不包含某些字符来进行正则表达式。

我需要显示/%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;

1 个答案:

答案 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);