gpt4 book ai didi

javascript - Regex101 与 JavaScript String.match 分歧

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:45:28 27 4
gpt4 key购买 nike

这个正则表达式 /{(\w+)}/g 应该匹配大括号 {} 之间 的每个单词字符。相反,我在 Regex101 JavaScript engine 中得到了不同的结果和 Chrome 控制台

regex 101 vs js engine

Regex101 按预期工作,.match 函数在没有 g 标志的情况下工作,但它无法检索花括号之间的内容一旦我应用它(它应该获取 ["asd","asd2"],而是获取 ["{asd}","{asd2}"])

为什么会这样?谢谢!

最佳答案

String.prototype.match将“g”标志添加到模式时,函数返回所有匹配项的数组。

您想使用 RegExp.prototype.exec获取捕获组的函数:

exec() 保存它在 RegExp 对象中找到的匹配项的最后一个索引,并在您下次运行它时从那里继续。因此,您需要遍历字符串直到函数返回 null 以获取所有匹配项。

Demo on JSFiddle

var str = "this {is} a {word} {test}";
var re = /{(\w+)}/g;
do{
var res = re.exec(str);
console.log(res);
} while( res );

关于javascript - Regex101 与 JavaScript String.match 分歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920384/

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