java - 如何在正则表达式中分组

标签 java regex

我有这个输入字符串(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/

相关文章:

java - Java(JSP)获取dd-MM-yyyy格式的日期

php - 正则表达式编译错误

java - 尝试运行 .jar 文件时出现 NullPointerException

java - 我是 Selenium 新手,但为什么 Maven 会跳过我的测试并告诉我构建成功?

Java - 正则表达式分割输入文本但保留分隔符

c++ - 在文本中查找特定标记并验证它们(RegExp?)

Java Regex - 捕获引号之外的所有内容

javascript - javascript中的 token 替换

java - Intellij - 当文件夹结构与包名称不同时

java - 异常 ORA-00942 : table or view does not exist - when inserting into an existing table using hibernate session