java - Java 正则表达式 - 两个完整正则表达式之间的条件
问题描述
我喜欢在 Java 中创建一个正则表达式 (regex),如果不是一个或多个零来或不是来,它应该是真的3037
。
我为这 2 个条件准备了 2 个不同的正则表达式
- 对于
0
条件:[^0]+
- 对于
3037
条件:^((?!^3037$).)*$
但不知道如何OR
在它们之间放置一个。
通行证案例:
001
002
30377
23037
2
4
55
失败条件:
0
00
000
0000
00000
3037
解决方案
您可以将此组合正则表达式用于 2 个条件(并且它不使用交替):
^(?!(?:3037|0+)$)\d*$
正则表达式详细信息:
^
: 输入开始(?!(?:3037|0+)$)
: 断言输入的负前瞻不是3037
并且不是全零\d*
: 匹配任何数字 0 次或多次$
: 输入结束
推荐阅读
- c# - 只需打印数组 c# 的最后一行
- jasper-reports - 我们可以在 ireport 的详细信息带中包含变量“TOTAL_SUM”吗?
- prometheus - 警报管理器唯一 ID
- alexa - 亚马逊 Alexa:无限期会话
- java - 如何在 Java Swing JTable 中冻结我的最后一列
- android - 如何在不同的imageView上设置List<>中图像src的倍数?
- php - cakephp 管理员前缀资产
- mongodb - 如何通过 mongo objectID 找到多个集合记录
- android - 改造 URL 查询字符串不能有替换块
- php - 使用连接到 MySQL 数据库的 Node.js 路由通过表单进行身份验证