gpt4 book ai didi

javascript - 正则表达式将字符串与开头的(逗号分隔的)数字匹配并拆分为数字和其余部分?

转载 作者:行者123 更新时间:2023-11-28 16:16:53 24 4
gpt4 key购买 nike

给定一个字符串,例如:

23,234,456 第一第二第三

如何将字符串分成两部分,其中第 1 部分包含开头的数字,第 2 部分包含其余部分——但前提是字符串以数字开头,并且数字可以用逗号分隔吗?换句话说,我想要两个结果:23,234,456first Second Third。如果该字符串中有一个数字不是第一个数字的一​​部分,那么它应该在第二个结果中。

到目前为止,我最好的尝试是从一开始就捕获数字,如下所示:

^[0-9]+(,[0-9]{3})*

这似乎捕获了以逗号分隔或非逗号分隔的数字作为行的开头。然而,当我在 Javascript 控制台中运行它时,我不仅得到完整的数字,而且还得到最后 3 位数字与其前面的 , 的匹配。 (例如 23,234,456,456)。

至于将其余部分放入另一个变量中,我遇到了麻烦。我尝试使用 \b 等,但我认为我一定错过了一些关于抓取该行其余部分的基本知识。

我在 Javascript 中执行此操作,以防万一。

有关匹配内容和不匹配内容的更多示例。

2 一二三 应返回 2一二三

2345 一二三 应返回 2345一二三

2 one 2 Three 应返回 2one 2 Three

2,234 一二 3,000 应返回 2,234一二 3,000

第 1 部分和第 2 部分之间的空格可以包含在第 2 部分的开头。

最佳答案

您需要对第一个和其余部分使用捕获组。试试这个正则表达式:

^(\d+(?:,\d+)*)\s+(.*)

现在第 1 组是逗号分隔的数字,第 2 组是其余数字。\s+ 吃掉中间的空白。 (至少需要 1 个)。

当然,如果正则表达式根本不匹配,那么它不会以数字或逗号分隔的数字列表开头,后跟一个或多个空格字符。

关于javascript - 正则表达式将字符串与开头的(逗号分隔的)数字匹配并拆分为数字和其余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234715/

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