有没有人能帮我做一下前面提到的正则表达式。
我有一个xml元素'docs‘,它有一个属性' range’,其中range应该只接受以下格式的值。
范围= "1,2,3,4,5“
或
范围= "1,2,3-6,10-12,15,20-30“
或
range = "all“
如果您能帮上一点忙,我们将不胜感激。提前谢谢。
发布于 2012-04-26 12:08:32
^\d(?!.*,-)[\d\,\-]*\d$|^all$|^\d+$应该对你的数字有效。输入只能是数字、逗号、破折号或单词all。
http://regexr.com?30p7f
发布于 2012-04-26 12:15:00
all|[1-9][0-9]*(-[1-9][0-9]*)?(,[1-9][0-9]*(-[1-9][0-9]*)?)*
我假设零和前导零是不允许的。
正则表达式不是确保数字按升序排列的好方法。
发布于 2012-04-26 12:31:30
正如@minopret提到的,这可能最好不要完全使用regex来处理。我将split(",")字符串,然后遍历结果数组,以确保它们按升序排列。此时,您可以对每个单独的数组元素进行正则表达式,以确保它们与以下内容匹配:
\d+(-\d+)?https://stackoverflow.com/questions/10327076
复制相似问题