我有这个输入字符串(oid):1.2.3.4.5.66.77.88.99.10.52
我想将每个数字分成 3 个来喜欢这个
第 1 组:1.2.3
第 2 组:4.5.66
第 3 组:77.88.99
第 4 组:10.52
根据输入,它应该是非常动态的。如果它有 30 个数字,则意味着它将返回 10 个组。
我已经使用此正则表达式进行了测试:(\d+.\d+.\d+)
但是结果是这样的
比赛 1:1.2.3
Subgroups:
1: 1.2.3
第 2 场比赛:66 年 5 月 4 日
Subgroups:
1: 4.5.66
第 3 场比赛:77.88.99
Subgroups:
1: 77.88.99
仍然错过了一场比赛。
任何人都可以帮我提供正则表达式。谢谢
最佳答案
\d+(?:\.\d+){0,2}
这与 Al 的最终正则表达式基本相同 - ((?:\d+\.){0,2}\d+)
- 但我认为这样更清晰。并且不需要在整个正则表达式两边加上括号。假设您使用 Matcher.find() 来获取匹配项,则可以使用 group()
或 group(0)
而不是 group(1)
检索匹配的文本。
关于java - 如何在正则表达式中分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321306/