gpt4 book ai didi

java - 验证正则表达式子匹配

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

我有以下一句话:

  • E012PH345AN678T

以及以下正则表达式:

  • ^E(.*)?(PH(.*)?AN|AN(.*)?PH)(.*)?T$

这将触发以下匹配:

  • 1:012
  • 2:PH345AN
  • 3:345
  • 4:
  • 5:678

有没有办法确保子匹配 (1,3,4,5) 在同一正则表达式中至少包含 3 个数字 (a-la (\1\3\4\5)\d{3,})?正则表达式将在我无法控制太多的 Java 环境中运行。

更新 - 作为另一个示例,此 EXY2PHZ45ANUWT 也应该匹配...我只需要找到 2,4,5在比赛中,在全局层面上。这些数字只是我需要的一个简化示例......可以是字母或其他东西。

谢谢。

最佳答案

将您的正则表达式修改为

^(?=.*\d.*\d.*\d.*)E(.*)?(PH(.*)?AN|AN(.*)?PH)(.*)?T$

当且仅当输入至少具有三位数字时,无论它们在哪个子组中捕获,这都会匹配输入。

关于java - 验证正则表达式子匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28456937/

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