gpt4 book ai didi

javascript - 为什么这个 javascript 正则表达式不匹配第二个和第四个模式?

转载 作者:行者123 更新时间:2023-11-28 13:22:36 25 4
gpt4 key购买 nike

new_data 输出为 ",$,2,$,4,$,"

但我期待",$,$,$,$,$,",有人可以向我解释为什么吗?谢谢。

var data = ",1,2,3,4,5,";
var pattern = /,\d,/g
var new_data = data.replace(pattern, function(match){
return ",$,";
});
console.log(new_data);

最佳答案

因为 ,\d, 吃掉了 ,1, 。然后,正则表达式引擎尝试匹配下一个 ,\d,,因为第一个模式耗尽了 , ,它存在于 2 , ,2, 对正则表达式引擎不可见。同样的情况也发生在 4 上。

所以你可以使用正向前瞻。

string.replace(/,\d(?=,)/g, ",$")

此处第二个逗号不会匹配,因为环视是不会捕获任何单个字符的断言。

关于javascript - 为什么这个 javascript 正则表达式不匹配第二个和第四个模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31906051/

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