特定模式的正则表达式

时间:2012-04-26 04:03:50

标签: java javascript regex regex-negation

如上所述,有人可以帮助我使用正则表达式。

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

range =“1,2,3,4,5”

range =“1,2,3-6,10-12,15,20-30”

range =“all”

小小的帮助将不胜感激。 提前谢谢。

3 个答案:

答案 0 :(得分:3)

^\d(?!.*,-)[\d\,\-]*\d$|^all$|^\d+$

应该适用于您的号码。输入只能是数字,逗号或短划线或单词all

http://regexr.com?30p7f

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

正如@minopret所提到的,这可能最好不能用正则表达式完全处理。我会split(",")字符串,然后迭代结果数组以确保它们按升序排列。您可以在该点对每个单独的数组元素进行正则表达式,以确保它们符合以下内容:

\d+(-\d+)?