gpt4 book ai didi

java - 正则表达式:匹配逗号后不跟数字

转载 作者:行者123 更新时间:2023-12-01 23:16:08 24 4
gpt4 key购买 nike

我想从类似命令的字符串中提取一些组,格式如下:

  1. foo(酒吧,1)。 > 需要“foo”、“bar”和“1”
  2. foo(酒吧,1.1)。 > 需要“foo”、“bar”和“1.1”
  3. foo(bar-{foo,bar},1.1)。 > 需要“foo”、“bar-{foo,bar}”和“1.1”

因此第一个参数中可以出现逗号!

由于第二个参数始终以数字开头,因此我可以匹配第一个参数逗号(后面不跟数字),但我无法使用前瞻来做到这一点:(

这是我迄今为止的尝试:

(\w+)\(([a-zA-Z0-9_\-\{\}~]+)(,(\d+(\.\d+)?))?\)\.

...但示例 3 与此不匹配。

(\w+)\(([a-zA-Z0-9_\-\{\}~\,(?!\d)]+)(,(\d+(\.\d+)?))?\)\.

...这个不会让我捕获 > 2 组(负向前看不会影响第一个逗号)

这是Debuggex example

任何帮助将不胜感激!非常感谢:)

最佳答案

如果 {} 应该包含任何内容,那么这可能会起作用吗?

(\w+)\(([a-zA-Z0-9_\-~]+(\{.*\})?),(.+)\)\.

关于java - 正则表达式:匹配逗号后不跟数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165706/

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