需要一个2000到9999之间的数字范围的快速正则表达式

Oli*_*unk -5 java regex numeric range

我在正则表达式上相当糟糕,并且不确定如何使用这个数值范围.

编辑:抱歉模糊不清,我需要检查输入的字符串是否在数字范围2000到9999之间,它之前或之后都没有任何数字.

Pet*_*rey 5

作为正则表达式,你可以写

[2-9][0-9][0-9][0-9]
Run Code Online (Sandbox Code Playgroud)

要么

[2-9][0-9]{3}
Run Code Online (Sandbox Code Playgroud)

要么

[2-9]\d{3}
Run Code Online (Sandbox Code Playgroud)

要么

[2-9]\p{Digit}{3}
Run Code Online (Sandbox Code Playgroud)

假设它们没有前导零,这将为您提供2000到9999之间的所有数字.即002000或+2000不匹配.

我要做的是

int i = Integer.parseInt(text);
if (2000 <= i && i <= 9999) 
   // ok.
Run Code Online (Sandbox Code Playgroud)

  • 更短的版本`[2-9] [0-9] {3}` (2认同)