2011-12-17 24 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