Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在正则表达式中使用正向前瞻忽略末尾是否相等_Javascript_Regex - Fatal编程技术网

Javascript 在正则表达式中使用正向前瞻忽略末尾是否相等

Javascript 在正则表达式中使用正向前瞻忽略末尾是否相等,javascript,regex,Javascript,Regex,我有一个正则表达式:(?您可以使用 {{([^{}]+)}}(?:(?!=\s*").)*$ 看 在JavaScript中,这可能是: let str=` {{user.email}}=“找到你了!”; {{user.name}}=“找到你了!”; let secret={{global.test.secret} 让myName={{global.array}}; 让botName={{user.name}}; 让email={{user.email} `; let patter

我有一个正则表达式:
(?您可以使用

{{([^{}]+)}}(?:(?!=\s*").)*$


JavaScript
中,这可能是:

let str=`
{{user.email}}=“找到你了!”;
{{user.name}}=“找到你了!”;
let secret={{global.test.secret}
让myName={{global.array}};
让botName={{user.name}};
让email={{user.email}
`;
let pattern=/{{([^{}]+)}(?:((?!=\s*))*$/mg;
让m;
做{
m=模式执行(str);
如果(m){
console.log(m[1]);
}
}while(m);
您可以使用

{{([^{}]+)}}(?:(?!=\s*").)*$


JavaScript
中,这可能是:

let str=`
{{user.email}}=“找到你了!”;
{{user.name}}=“找到你了!”;
let secret={{global.test.secret}
让myName={{global.array}};
让botName={{user.name}};
让email={{user.email}
`;
let pattern=/{{([^{}]+)}(?:((?!=\s*))*$/mg;
让m;
做{
m=模式执行(str);
如果(m){
console.log(m[1]);
}

}while(m);
(?
)(?我只想要花括号里的东西。@PrinceAl harasis:解决方案正好给了你这个。你是说
(?:(?!=\s*)*$
中的双引号是
=
?如果是的话,你不能用
(?!*=)替换表达式的那部分吗
?OP可能对
(?!=\s*=)
感到满意,但这还不清楚。我只想要大括号内的内容。@PrinceAl harasis:解决方案正好给了你这个答案。你是说
(?:(?!=\s*)*$
中的双引号是
=
?如果是的话,你不能用
替换表达式的那部分吗(?!*=)
?OP可能对
(?!=\s*=)感到满意
,但这还不清楚。谢谢,在正向前瞻中使用负向前瞻是一个完美的解决方案。我建议您在匹配空格时使用空格字符,而不是
\s
。此处
\s*
将占用行终止符,导致字符串以
“…secret}}\n=”结尾<代码> >不匹配。考虑用<代码>(??*=)<代码>替换<代码> \s*(?!\\s\\])>(或也许<代码>(?!*=* })< /代码>最后,在字符类中,需要转义的字符很少,而且它们不包括“.”或“=”。谢谢,在正先行中使用负先行是一个完美的解决方案。我建议您在匹配空格时使用空格字符,而不是
\s
。这里
\s*
将占用行终止符,因为唱一个字符串结尾<代码>……秘密} }……不匹配。考虑用<代码>(?!*=)<代码>(或者也许<代码>(?!*=* })< /代码>)替换<>代码> \\代码>(最后,在字符类中很少有字符需要逃避,它们不包括‘.'或‘=’”。