正则表达式匹配连字符和逗号

时间:2012-07-16 01:52:20

标签: regex

我正在尝试使用正则表达式匹配数字:

  1. 可以在
  2. 之间包含连字符
  3. 可以包含连字符和逗号
  4. 尝试:

    [0-9-]+    
    [0-9]+[-]?:[-N]?[0-9]
    

    示例有效输入:

    60-55-1
    79-0,2,4,6,8,10,12,14,16,18,20,22,24,26
    

4 个答案:

答案 0 :(得分:6)

你的意思是,例如,[0-9,-]+

答案 1 :(得分:2)

以Kolink的答案为基础(就问题而言是正确的),假设,2379-无效:

^[0-9][0-9,-]*-[0-9,-]*[0-9]$

这要求字符串以数字开头,包含任意数量的有效字符后跟连字符,然后是任何其他数量的有效字符,最后以数字结尾。请注意,这是简单的BRE(不是ERE或PREG),因此它适用于每个正则表达式解析器。

如果我提到的的样本实际上有效,请说明。

答案 2 :(得分:0)

这将符合您的要求

[0-9]+(?:[-,]?[0-9]+)*

它将获得任何数字模式,后跟一个带有破折号和逗号后跟更多数字的可选字符串。

答案 3 :(得分:0)

(-)?[0-9]+((,|-)[0-9]+)*

我认为这可以满足您的需求。