我正在使用正则表达式来匹配有效的整数,如下所示:
但是它不应该允许匹配空字符串.我能得到的最接近的是:
(0)|\\d{1,3}
Run Code Online (Sandbox Code Playgroud)
对我来说,匹配的字符串将包含1到3个字符长的零或一系列数字.但是,空字符串仍然看起来与此模式匹配.从这个正则表达式中排除空字符串的正确方法是什么?
Pet*_*ton 10
: - (如果这些后面的一些期望不明确包括0或00或01或012)这将匹配(仅)一个系列中的一个来三个数字
^\d{1,3}$
Run Code Online (Sandbox Code Playgroud)
它不会匹配空字符串(但是你的原始复杂表达式也不会).
(要将其作为较大字符串的一部分,请删除^和$锚点.)
但也许正则表达式不是最好的选择 - 你使用的任何基本语言都没有isNumeric函数吗?
要允许0而不是其他0前缀数字,您可以使用:
0|[1-9]\d{0,2}
Run Code Online (Sandbox Code Playgroud)
或者,确保这是整场比赛:
^(?:0|[1-9]\d{0,2})$
Run Code Online (Sandbox Code Playgroud)
这个怎么样?
^[1-9][0-9]{1,2}$|^\d$
Run Code Online (Sandbox Code Playgroud)
这将匹配:
0
1
99
999
Run Code Online (Sandbox Code Playgroud)
但不匹配:
01
001
1234
Run Code Online (Sandbox Code Playgroud)