我正在尝试使用正则表达式匹配数字:
- 中间可以包含连字符
- 可以同时包含连字符和逗号
试过:
[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
我正在尝试使用正则表达式匹配数字:
试过:
[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
所以你的意思是,比如,[0-9,-]+
例如?
基于 Kolink 的回答(就问题而言这是正确的),并假设,23
并且79-
无效:
^[0-9][0-9,-]*-[0-9,-]*[0-9]$
这要求字符串以数字开头,包含任意数量的有效字符,后跟连字符,然后是任意其他数量的有效字符,以数字结尾。请注意,这是简单的 BRE(不是 ERE 或 PREG),因此它适用于每个正则表达式解析器。
如果我提到的样本实际上是有效的,请说出来。
这将匹配您正在寻找的内容
[0-9]+(?:[-,]?[0-9]+)*
它将获得任何数字模式,后跟一个带有破折号和逗号的可选字符串,后跟更多数字。
(-)?[0-9]+((,|-)[0-9]+)*
我认为这可以满足您的需求。