首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定模式的正则表达式

特定模式的正则表达式
EN

Stack Overflow用户
提问于 2012-04-26 12:03:50
回答 3查看 200关注 0票数 1

有没有人能帮我做一下前面提到的正则表达式。

我有一个xml元素'docs‘,它有一个属性' range’,其中range应该只接受以下格式的值。

范围= "1,2,3,4,5“

范围= "1,2,3-6,10-12,15,20-30“

range = "all“

如果您能帮上一点忙,我们将不胜感激。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-26 12:08:32

代码语言:javascript
复制
^\d(?!.*,-)[\d\,\-]*\d$|^all$|^\d+$

应该对你的数字有效。输入只能是数字、逗号、破折号或单词all

http://regexr.com?30p7f

票数 3
EN

Stack Overflow用户

发布于 2012-04-26 12:15:00

all|[1-9][0-9]*(-[1-9][0-9]*)?(,[1-9][0-9]*(-[1-9][0-9]*)?)*

我假设零和前导零是不允许的。

正则表达式不是确保数字按升序排列的好方法。

票数 2
EN

Stack Overflow用户

发布于 2012-04-26 12:31:30

正如@minopret提到的,这可能最好不要完全使用regex来处理。我将split(",")字符串,然后遍历结果数组,以确保它们按升序排列。此时,您可以对每个单独的数组元素进行正则表达式,以确保它们与以下内容匹配:

代码语言:javascript
复制
\d+(-\d+)?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10327076

复制
相关文章

相似问题

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