首页 > 解决方案 > Java 正则表达式 - 两个完整正则表达式之间的条件

问题描述

我喜欢在 Java 中创建一个正则表达式 (regex),如果不是一个或多个零来或不是来,它应该是真的3037

我为这 2 个条件准备了 2 个不同的正则表达式

但不知道如何OR在它们之间放置一个。

通行证案例:

001
002
30377
23037
2
4
55

失败条件:

0
00
000
0000
00000
3037

标签: javaregex

解决方案


您可以将此组合正则表达式用于 2 个条件(并且它不使用交替):

^(?!(?:3037|0+)$)\d*$

正则表达式演示

正则表达式详细信息:

  • ^: 输入开始
  • (?!(?:3037|0+)$): 断言输入的负前瞻不是3037并且不是全零
  • \d*: 匹配任何数字 0 次或多次
  • $: 输入结束

推荐阅读