正则表达式捕获 2 个连续数字,但如果 3 个或更多则不捕获

JGF*_*FMK 2 java regex

例如。如果我有 1234X03.04

我想捕捉的0304 ,但我不想122334

我明白:

  • 负前瞻: (?!...)
  • 负面回顾: (?<!...)

但是,我不知道如何将它组合成一个正则表达式。有人可以帮我吗?干杯。

Mon*_*eus 9

您可以使用:

(?<!\d)\d{2}(?!\d)
Run Code Online (Sandbox Code Playgroud)
  • (?<!\d) - 前面的字符不是数字
  • \d{2} - 正好两个连续的数字
  • (?!\d) - 下一个字符不是数字

这是PHP 中结果的演示。我认为 PHP 的正则表达式接近 Java 的。

  • @f1sh 我提供了一个演示。 (2认同)