gpt4 book ai didi

Javascript 改进正则表达式以匹配 3 的数字 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:53 24 4
gpt4 key购买 nike

如果我有数字 22345678 我想得到一个 3 的数字 block ,我想得到 ['22','345','678'] 。使用以下正则表达式

/(\d{1,3})(?=(\d{3})+(?!\d))/g

我得到 ['22','345']

谁能帮我改进我的正则表达式?

这里有一个例子 --> https://regex101.com/r/cF6rN4/1以及这篇文章中的一个片段

console.log('22345678'.match(/(\d{1,3})(?=(\d{3})+(?!\d))/g));

最佳答案

匹配后跟长度为 3 的乘数或末尾的数字的字符串。

console.log('22345678'.match(/\d{1,3}(?=(\d{3})+$|$)/g));

Regex explanation here.

Regular expression visualization


您可以避免捕获组,因为它不是必需的。

/\d{1,3}(?=(?:\d{3})+$|$)/g
//---------^^^-------------

更新: 使用 *(0 或更多重复)代替 + 可以简化得多>(1 或更多重复) 这有助于避免管道符号。作为 @torazaburo 的评论 (\d{3})*$(\d{3})+$ |$ 是等价的。

/\d{1,3}(?=(\d{3})*$)/g

关于Javascript 改进正则表达式以匹配 3 的数字 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794600/

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