【发布时间】:2019-01-03 23:16:32
【问题描述】:
我有这个示例字符串111:222:333。从中,我需要提取所有三个 : 分隔的数字。输出应该找到三个匹配项 - 111 和 222 和 333。
我使用这个正则表达式来实现这一点:(?<=^|:)(\d+)(?=:|$)。
但是,我需要此正则表达式仅在至少有 2 个匹配项时进行匹配。因此,111 不应该匹配,但 111,222,... 应该匹配。
我不能在 Java 中使用标准拆分函数,因为我的用例要求从数据库中动态读取正则表达式。
如何强制执行“至少两个匹配”条件?
【问题讨论】:
-
试试
(?<=\G(?!^):|^(?=\d+(?::\d+)+$))\d+ -
@WiktorStribiżew 这很好用!
标签: regex