Java Regex:4个字母后跟2个整数

时间:2015-11-09 17:56:19

标签: java regex string

正则表达式初学者。

已经访问过以下内容,没有人回答我的问题:

123456等。

我有一个简单的正则表达式来检查一个字符串是否包含4个字符后跟2个数字。

[A-Za-z]{4}[0-9]{2}

但是,使用它时,它不匹配。这是我使用的方法以及输入和输出的示例:

在JPasswordField中输入

Mypass85

输出

false

方法

public static boolean checkPass(char[] ca){
    String s = new String(ca);
    System.out.println(s); // Prints : Mypass85
    p = Pattern.compile("[A-Za-z]{4}[0-9]{2}");
    return p.matcher(s).matches();
}

2 个答案:

答案 0 :(得分:3)

Matcher#matches尝试匹配完整输入。请改用Matcher#find

public static boolean checkPass(String s){
    System.out.println(s); // Prints : Mypass85
    p = Pattern.compile("[A-Za-z]{4}[0-9]{2}");
    return p.matcher(s).find();
}

答案 1 :(得分:2)

宣传对答案的评论。

它不匹配,因为"Mypass85"是6个字母后跟2个数字,但您的模式恰好是4个字母后跟2个数字。

您可以传递"Pass85"之类的内容以匹配您现有的模式,也可以通过将"Mypass85"更改为{4}或{{1}来匹配{6} (4或更多)。

相关问题