2016-01-03 35 views
-3

我試圖驗證用戶輸入格式的座標:x,y 所以我使用正則表達式。 Xÿ可以是1到15之間,所以我用Java正則表達式指定數字範圍

[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

我想你明白[...]錯誤的方式:它意味着你指定一個字符範圍。因此[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}