Java正则表达式指定数字范围

时间:2016-01-03 12:29:01

标签: java regex numbers

我试图验证用户是否以以下格式输入坐标: x,y 所以我使用正则表达式。 x y 可以在1到15之间,所以我用了

[1-15]\\d{1,2},[1-15]\\d{1,2}

但这没有用,因为15显然不是一个数字。我把它改成了

\\d{1,2},\\d{1,2}

所以至少我可以确认它的两个一位或两位数字,但它可以在任何一方达到99;不好。我尝试过其他一些方法,比如

\\d{1}|[1]\\d[0-5]\\d...

但是没有任何作用,说实话,我已经看了这么久,这已经不再有意义了。

更重要的是,使用java的正则表达式功能是否是一种好习惯?我可以想到其他方法来做到这一点,但这只是为了我正在研究的个人项目,并尝试不同的方法来处理我通常做得很乱的事情。

1 个答案:

答案 0 :(得分:1)

我认为您理解[...]错误的方式:它意味着您指定了一系列字符。因此[1-15]表示: 115 。因此它等同于1|5

但您可以使用[1-9]|1[0-5]指定数字1到15。将其插入正则表达式会导致:

([1-9]|1[0-5])\\d{1,2},([1-9]|1[0-5])\\d{1,2}