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