1

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

  1. 中间可以包含连字符
  2. 可以同时包含连字符和逗号

试过:

[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

4 回答 4

6

所以你的意思是,比如,[0-9,-]+例如?

于 2012-07-16T01:54:51.317 回答
2

基于 Kolink 的回答(就问题而言这是正确的),并假设,23并且79-无效:

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

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

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

于 2012-07-16T03:17:29.590 回答
0

这将匹配您正在寻找的内容

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

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

于 2012-07-16T02:07:40.530 回答
0
(-)?[0-9]+((,|-)[0-9]+)*

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

于 2012-07-16T02:36:07.040 回答