2011-12-17 28 views
0

Unicode的正則表達式,我需要用Java編寫涵蓋以下情況下在Java中

間6-10個字符

必須至少有一個數字

我已被告知,正則表達式我應該在正則表達式中使用Unicode約定,因爲輸入可能有很多種語言

任何人都可以幫忙嗎?

+0

目前只有很少的機會,你可以在這裏得到幫助,因爲你沒有顯示你有什麼到目前爲止已經試過。你需要包括你的努力和你的問題。 – Lion 2011-12-17 21:46:39

回答

1

對於字符串長度,只需使用.length()方法。對於匹配,使用\p{Digit},這應該做你想要的並且覆蓋超過\d(雖然我看不到)。

所以:

final Pattern p = Pattern.compile("\\p{Digit}"); 

//... 

if (input.length() < 6 || input.length() > 10) 
    //fail 
if (!p.matcher(input).find()) 
    //fail 

// Success! 
+0

將使用。長度() 以下失敗 '公共類PasscodeValidator { 最終靜態圖案P = Pattern.compile( 「\\ p {數字}」); \t \t 公共靜態布爾validatePasscode(字符串密碼){ \t \t返回p.matcher(密碼).lookingAt(); \t} \t \t 公共靜態無效的主要(字串[] args){ \t \t的System.out.println(validatePasscode( 「B1」)); \t} }' 任何想法? – user964283 2011-12-17 22:02:13

+0

啊!它應該是'.find()',而不是'.lookingAt()'!回答相應編輯。 – fge 2011-12-17 22:05:50

+0

工作,謝謝 – user964283 2011-12-17 22:09:21