怎么写正确的正则表达式

时间:2013-05-28 06:58:48

标签: regex c#-4.0

我有以下要求    用户可以输入多个值,分隔     例如10,20,30,35-40,45,50-55 //有效

User can enter multiple values - seprated
e.g. 10,20-30,35-40 //Valid
e.g. 10,20-30,35-40,-1000 //Invalid 

我有以下RegEx

   ^
  (?:
     (?:[0-9]?\d|[0-9])(?:-[0-9]?\d|[0-9])?
  )
  (?:
     ,(?:[0-9]?\d|[0-9])(?:-[0-9]?\d|[0-9])?
  )*
$

I am validating following value 
10,20-30,35-40      Valid
01-50,              invalid
50                  Valid
500                 Valid
40-50,50-60,5,50    Valid
40-50,1234-4567     Invalid (Expected: this should be valid)
5-50                Valid
5,80                Valid
8,71                Valid
test and lol        Invalid
08,60               Valid

请帮我写正确的正则表达式以获得正确的输出。

1 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式

^\d+([,-]\d+)*$

+是一个量词,它将前面的组或字符 1 多次匹配..

*是一个量词,它将前面的组或字符 0 多次匹配..

[xyz]是一个匹配x y z的字符类