Android Studio正则表达式

时间:2016-03-11 06:03:00

标签: java android regex

我有这个:

 public final static boolean isValidNickName(String target)
 {
     return Pattern.compile("^.((?=.*[가-힣]).{1,12})((?=.*[a-zA-Z0-9]){2,12}).$").matcher(target).matches();
 }

我想要验证以下内容的模式:

  1. 允许[가 - 힣]范围内的一个或多个字母。

  2. 允许从2种组合开始的字母数字变异ex)1a,가1,가a,5bcc,994930s0

  3. 排除everythingelse(如特殊字符或单个字母数字字符)

  4. 当我暂时运行时,应用程序退出。

    另外,我有这个工作:

        public final static boolean isValidPassword(String target) 
       {
            return Pattern.compile("(?=.*[a-zA-Z])(?=.*[0-9]).{4,12}").matcher(target).matches();
       }
    

    但是当包含特殊字符时,这会返回

    我想让它在包含特殊字符时返回false

3 个答案:

答案 0 :(得分:0)

试试吧。愿它帮助..
//检查密码是否有效 这个角色类

[\p{L}\p{No}\p{Space}]

将包括Unicode声明为"字母","数字"或"空白字符"的所有字符。如果要将字符串与此类字符类匹配,则应编写以下内容:

input.matches("[\\p{L}\\p{No}\\p{Space}]+")

答案 1 :(得分:0)

public final static boolean isValidPassword(String target) {
    return Pattern.compile("^(?=.*\\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{4,12}$").matcher(target).matches();
}

public final static boolean isValidName(String target) {
    return Pattern.compile("^(?=.*[a-zA-Z가-힣])[a-zA-Z가-힣]{1,}$").matcher(target).matches();

}

public final static boolean isValidNickName(String target) {
    return Pattern.compile("^(?=.*[a-zA-Z\\d])[a-zA-Z0-9가-힣]{2,12}$|^[가-힣]$").matcher(target).matches(); 
}

经过3个小时的努力,这是答案......

答案 2 :(得分:0)

此代码可能可以帮助某人。

注意Pattern.UNICODE_CASE

public boolean isPasswordValid(String password) {


    String regEx = "^(?:(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*)[^\\s]{8,}$";

    CharSequence inputStr = password;

    Pattern pattern = Pattern.compile(regEx,Pattern.UNICODE_CASE);
    Matcher matcher = pattern.matcher(inputStr);

    if(matcher.matches())
        return true;
    else
        return false;
}