首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java正则表达式验证数字逗号分隔数字和连字符

Java正则表达式验证数字逗号分隔数字和连字符
EN

Stack Overflow用户
提问于 2013-10-28 17:04:55
回答 1查看 3.8K关注 0票数 1
代码语言:javascript
运行
复制
Valid1: 2

valid2: 3-5

Valid3: 2,4-6

valid4: 2,4,5

valid5: 2-7,8-9

Valid4: 2,5-7,9-13,15,17-20

上面的所有表达式都应该在一个正则表达式中有效。连字符左边的数字应该比右手的小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-28 17:24:10

首先,正如@MikeFHay上面所建议的,regex不是用来检查一个数字是否大于另一个数字(为此,您必须解析表达式)。如果我们忽略了这个要求--其余的可以通过以下正则表达式来实现:

代码语言:javascript
运行
复制
((\d\,(?=\d))|(\d\-(?=\d))|\d)+

在Java中:

代码语言:javascript
运行
复制
"((\\d\\,(?=\\d))|(\\d\\-(?=\\d))|\\d)+"

解释:

这个正则表达式使用展望来验证每个逗号或破折号前面有一个数字:(\d\,(?=\d)),因此每个包含破折号/逗号的“子字符串”都必须是:位、数字或数字数字的格式。

当然,不包含逗号/破折号的数字也是有效的--因此,or的最右边就是一个\d

链接到在线演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19640841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档