2011-11-10 32 views
0

我正在寻找一个正则表达式来匹配这样一个字符串:1,2,4-6,9,11-13,20如何使用正则表达式编写此代码?

限制:

  1. 唯一号码,逗号和连字符被允许
  2. 不能有空格
+5

需要澄清一些问题(可能还有一些说明你已经尝试了自己,以及你在哪里被困住了,问题可能是你没有充分定义实际问题,如果你这样做,解决方案是微不足道的)。例如,“ - ,1 - , - 2-2-2-2,111,-11 - , - , - ,34,”是否有效?根据你的规则,到目前为止,这将是。 1.5是一个数字吗?另外,你是否想要在更长的文本中查找像这样的字符串,或者是否希望根据规则验证整个字符串? –

+0

而且,正如@FailedDev在他的回答中指出的那样,您需要告诉我们您正在使用的正则表达式。 –

回答

1

你的问题是相当含糊。我会建议改进它,或阅读正则表达式上的tutorial

根据你的限制,你的正则表达式是/^[-\d,]*$/但我确定这不是你想要的。

您应该提供输入,输出,正在使用的正则表达式的例子,以及最后但并非最不重要的尝试来解决问题。

1

我猜你想匹配逗号分隔的正整数或正整数范围的列表。 \d+匹配整数,以允许范围,您将使用\d+(-\d+)?

所以,正则表达式

\d+(-\d+)?(,\d+(-\d+)?)* 

会做。

+0

这也是我的猜测。尽管如此,听到@ ggk517会很高兴。但这绝对值得赞赏。 –