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

Java 需要一个数字范围在2000到9999之间的快速正则表达式,java,regex,range,numeric,Java,Regex,Range,Numeric,我在正则表达式方面相当差,不确定如何实现这个数字范围 编辑:很抱歉说得含糊不清,我需要检查输入的字符串是否在2000到9999之间,前后不会有任何数字。作为正则表达式,您可以编写 [2-9][0-9][0-9][0-9] 或 或 或 这将为您提供2000到9999之间的所有数字,假设它们没有前导零。i、 e.002000或+2000将不匹配 我要做的是 int i = Integer.parseInt(text); if (2000 <= i && i <= 999

我在正则表达式方面相当差,不确定如何实现这个数字范围


编辑:很抱歉说得含糊不清,我需要检查输入的字符串是否在2000到9999之间,前后不会有任何数字。

作为正则表达式,您可以编写

[2-9][0-9][0-9][0-9]

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

我要做的是

int i = Integer.parseInt(text);
if (2000 <= i && i <= 9999) 
   // ok.

我在RegEx也很糟糕,但在来这里之前,我尝试一下。试试这里:Stack Overflow不是一个让人们为你工作的地方,它是用来在你正在做的工作中获得帮助的。虽然你可以用正则表达式来做这件事,但解析数字并检查它是否在2000到9999之间可能更清楚,除非你想让02000这样的数字不匹配。@Pete谢谢你的链接,看起来像是一个有用的网站。@PeterLawrey我很抱歉我不太懂,你说的解析数字是什么意思?你的意思是使用Integer.parseInt并查看它是否有效?较短的版本[2-9][0-9]{3}谢谢,我应该使用^[2-9][0-9]{3}$吗,因为在数字之前或之后不应该有任何内容?如果使用匹配器,它无论如何都会这样做。i、 这取决于正则表达式的使用方式。
[2-9]\d{3}
[2-9]\p{Digit}{3}
int i = Integer.parseInt(text);
if (2000 <= i && i <= 9999) 
   // ok.