如何修改此正则表达式以要求特定的数字范围并允许空字符串?

时间:2013-02-08 11:57:12

标签: regex

我有以下正则表达式:

^([1-9]){3,5}[1-8]$

它可以限制某个范围内的字符串,但现在我需要更改它,以便它也允许空字符串。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

^(([1-9]){3,5}[1-8])?$

如果您关心捕获的群组,请使用(?:,否则,您可以删除[1-9]周围的括号。但是,必须保留整个序列周围的括号,因此?量词仍然正确应用(在组零或一次之前)。因此,稍短(可能更正确)的版本将是:

^(?:\d{3,5}[1-8])?$

这将返回一个匹配,这是整个输入字符串。

答案 1 :(得分:0)

这应该有效:

^(|([1-9]){3,5}[1-8])$