gpt4 book ai didi

regex - 帮助解决一组中缺乏值(value)的正则表达式模式

转载 作者:行者123 更新时间:2023-12-01 09:26:24 25 4
gpt4 key购买 nike

我有这个原始数据:

one:1,two:2;one:11;one:111,two:222;one:1111,two:2222;one:11111,two:22222;

展开数据:

one:1      two:2
one:11
one:111 two:222
one:1111 two:2222
one:11111 two:22222

(可以看到第二组没有二号。)

现在,我需要获取所有数字。我写这个模式:

one:(.*?),two:(.*?);

但它在第 2 个匹配项中返回了不正确的值,请参阅:

Match 2
Full match `one:11;one:111,two:222;`
Group 1. `11;one:111`
Group 2. `222`

我的期望值:

Match 2
Full match `one:11;`
Group 1. `11`
Group 2. ``

在线查看: https://regex101.com/r/Qm9tKG/1

你能建议我解决这个模式吗?

最佳答案

您可以将此正则表达式与可选匹配分支重置组 一起使用:

one:(\d+)(?|,two:(\d+)|());

正则表达式详细信息:

  • one::匹配文字文本 'one:
  • (\d+):第一个捕获组。匹配 1 个或多个数字
  • (?|: 开始分支重置组
    • ,two::匹配文字文本 ,two:
    • (\d+):第二个捕获组。匹配 1 个或多个数字
    • |:或者
    • ():一个空组,将被编号为第二个捕获组
  • ):结束分支重置组
  • ;:匹配文字;

Updated RegEx Demo

关于regex - 帮助解决一组中缺乏值(value)的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51910718/

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