gpt4 book ai didi

java - 正则表达式 : match only separate numbers inside specified symbols

转载 作者:行者123 更新时间:2023-12-01 17:59:02 24 4
gpt4 key购买 nike

我在 java 中使用正则表达式,无法弄清楚如何仅匹配预定义符号内的数字。

这是我的字符串之一的示例:

some text [1] some and numbers 12, 14 and more text [11,1] another text [3,6, 7] and some more text [5;16]

真的可以只检索方括号中的数字吗?在这种情况下:1 11 1 3 6 7 5 16这不应与方括号中的任何其他符号匹配。

我已经尝试了多种选择,包括:

Pattern k = Pattern.compile("\\[(\\d+)\\]");

但这仅给出一个数字的作品,而不是其他数字的作品。我尝试将它们分组,例如 (?:\\[) some code inside (?:\\]) 但没有成功。

更新

分组的解决方法:Pattern k = Pattern.compile("\\[(\\d+)(?:.)?(\\d+)?\\]");但会生成括号和逗号作为输出。

最佳答案

您可以选择这些数字,可以使用以下正则表达式:

(?:\G|\[)[,;\s]*(\d+)

它只选择数字。

See the demo

说明

  • (?:\G|\[) 匹配上一个匹配的结束位置左括号
  • [,;\s]* 匹配逗号、分号或空格零次或多次
  • (\d+) 捕获数字

您将获得第 1 组中的号码。

关于java - 正则表达式 : match only separate numbers inside specified symbols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42376111/

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