正则表达式匹配0 - 999但不是空白

Jam*_*add 0 regex

我正在使用正则表达式来匹配有效的整数,如下所示:

  • 0
  • 1
  • 99
  • 999

但是它不应该允许匹配空字符串.我能得到的最接近的是:

(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)


Ste*_*ham 5

这个怎么样?

^[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)