gpt4 book ai didi

Javascript 正则表达式惰性匹配

转载 作者:行者123 更新时间:2023-11-30 14:03:03 28 4
gpt4 key购买 nike

我正在尝试在 javascript 代码中找到 for 循环模式,并使用下面的正则表达式替换语法(从 : 到 in),

var str="for(var x in []) for(var y in [])";

str.replace( new RegExp( '(for\\s*\\(.+\\s+):(\\s+.+\\))', 'ig' ), "\$1in\$2" )

for(var x : list)
{
// something
}

for(var x in list)
{
// something
}

但是,当同一行中有多个 for 循环时,我会遇到问题。

for(var x : list) { for(var y : list) {
// something
}
}

这是有效的语法,但是由于贪婪正则表达式方法,它转换如下:

for(var x : list) { for(var y in list) {
// something
}
}

我尝试探索懒惰的正则表达式语法,但没能成功。我怎样才能做到这一点?

最佳答案

您可以向所有 *+ 添加一些惰性量词。并将 for 作为替换的一部分,因为匹配。

var str = "for(var x : []) for(var y : [])";

console.log(str.replace(/for\s*?(\(.+?\s+?):(\s+?.+?\))/ig, "for $1in$2"));

有点短,它在第一组中包含 for

var str = "for(var x : []) for(var y : [])";

console.log(str.replace(/(for\s*?\(.+?):(.+?\))/ig, "$1in$2"));

关于Javascript 正则表达式惰性匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965558/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com