2013-03-26 60 views
0

正則表達式是正確的,只是x1true,而它必須是true只有前x\\d,但在\\d無需'之前。我需要較小的字符串作爲number'radius和最大width x height x depth ' radius無法完成正則表達式

checkField = "x1"; 
String r = "\\d{0,4}(x\\d{1,4}){0,2}('\\d{1,4})?"; 
Pattern p = Pattern.compile(r); 
Matcher m = p.matcher(checkField); 
String a = String.valueOf(m.matches()); 
if (m.matches()) { 
    infoBox(checkField, a); 
} else { 
    errorBox(checkField, a); 
} 

回答

1

我認爲這應該工作:

"^(\\d{1,4}(x\\d{1,4}){0,2})?('\\d{1,4})?$" 

表達接受的形式AxBxC的(可選)字符串(與1,2或3座標),然後跟隨一個形式爲'D'的可選字符串。

由於兩個字符串都是可選的,所以您還應該檢查字符串是否爲空。

+0

是的,但後來我無法鍵入''1',因爲在'''我需要數字之前! – 2013-03-26 09:56:52

+1

我認爲你應該給出一個更完整的解釋你想達到的目的,否則我可以糾正這個匹配也是'1,但我認爲這是不夠的。 – Teudimundo 2013-03-26 09:59:49

+0

我需要我可以放置1個或所有尺寸的項目 - 寬度,高度,深度和半徑... 但項目只能與寬度和高度('1x1')或只有深度('1')或只有半徑(''1'),所以次要的字符串必須是數字或半徑最大的寬度x高度x深度半徑 – 2013-03-26 10:08:30