【发布时间】:2020-12-14 16:46:09
【问题描述】:
我不知道如何表达这个问题的标题,但想象一下我有以下字符串:
(1,2),(3,(4))
我想要一个允许我获取1,2 和3,(4) 的正则表达式
我目前拥有的正则表达式是\\(([^)]*)\\)。
这个正则表达式的问题是它让我知道1,2 和3,(4。发生这种情况是因为它与 (4) 的括号匹配。但是我需要一个忽略 4 的括号并且只匹配外部括号的正则表达式,如果这有意义的话。
编辑:为了更深入地了解问题,这是我期望的确切类型的字符串:(STRING1,STRING2),(STRING3,STRING4) 其中STRING 是一串随机字符(它可以有字母、数字、空格、其他随机符号) .由于它有随机字符,字符串本身可以有括号,这将触发正则表达式。我基本上需要跟踪发现的每个括号,我可以忽略与其他左括号匹配的右括号。
【问题讨论】:
-
你说你需要得到
1,2和3,(4)但你也想忽略4的括号? -
Regex 不擅长匹配任意嵌套的语法。使用您自己的代码或解析器库来解析它会更容易。
-
这个例子太具体了。请举出更多例子。此外,您想忽略字符串中的其他字符吗?
(1,2), (3,4)) xyz。空格等呢? -
我为我的问题添加了更多细节。希望现在更清楚了。我认为@Hulk 已经掌握了要点,但我不确定如何实现这一点。
-
@Hulk 但我对里面的东西很感兴趣。我想要的正是我在示例中展示的内容