gpt4 book ai didi

javascript - 正则表达式中的括号单位返回额外的匹配项

转载 作者:行者123 更新时间:2023-11-30 05:56:56 25 4
gpt4 key购买 nike

我是正则表达式的新手,一直在努力解决一个问题,并将我的问题抽象为以下问题:

var foo = "abc";
var array1 = match(/abc/);
var array2 = match(/a(b)c/);

数组 1 当然只包含“abc”,但数组 2 将同时包含“abc”和“b”。
为什么 array2 也选择“b”?这对我来说是个问题,因为我正在匹配大括号内的一些东西,比如“{1 2a 3}”,正则表达式比如 /\{(\d(|a|b)\s?)+\}/,生成的数组返回空字符串和“3”以及所需的“{1 2a 3}”。

谢谢!
艾萨克

最佳答案

使用 (?:) 而不是 ()

/{(?:\d(|a|b)\s?)+}/

当您使用 () 时,match 也会返回匹配的组。组是字符串中与正则表达式部分相对应的部分,它们在 () 中。

关于javascript - 正则表达式中的括号单位返回额外的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258632/

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