Java正则表达式:4个字母后跟2个整数

Java正则表达式:4个字母后跟2个整数,java,regex,string,Java,Regex,String,这里是Regex初学者 已经访问了以下内容,没有人回答我的问题: ,等等 我有一个简单的正则表达式来检查字符串是否包含4个字符和2个数字 [A-Za-z]{4}[0-9]{2} 但是,当使用它时,它不匹配。以下是我使用的方法以及输入和输出示例: 在jpassword字段中输入 输出 方法 Matcher#匹配尝试匹配完整输入。改用Matcher#find: public static boolean checkPass(String s){ System.out.println(s);

这里是Regex初学者

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

,等等

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

[A-Za-z]{4}[0-9]{2}
但是,当使用它时,它不匹配。以下是我使用的方法以及输入和输出示例:

在jpassword字段中输入 输出 方法
Matcher#匹配
尝试匹配完整输入。改用
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();
}
Matcher#匹配
尝试匹配完整输入。改用
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();
}

将评论升级为答案

它不匹配,因为
“Mypass85”
是6个字母后跟2个数字,但您的模式要求正好是4个字母后跟2个数字


您可以传递类似于
“Pass85”
的内容以匹配现有模式,也可以通过将
{4}
更改为
{6}
{4,}
(4或更多)来获得匹配的
“Mypass85”

将注释升级为答案

它不匹配,因为
“Mypass85”
是6个字母后跟2个数字,但您的模式要求正好是4个字母后跟2个数字



您可以通过传递类似于
“Pass85”
的内容来匹配现有模式,也可以通过将
{4}
更改为
{6}
{4,}
(4个或更多)来获得
“Mypass85”
以匹配模式。

它在我的测试中起作用,并为
Mypass85
返回
true
好的,我编辑了我的问题。我实际上从一个JPasswordField接收到一个char数组,但我不认为它很重要。最终这个方法得到一个字符串,所以这个
字符串
来自哪个源并不重要。你能使用
System.out.printf(“[%s]”,s)
来打印它并查看您得到了什么。再次感谢,但问题是要查找的字符数。输入:6-2,我的正则表达式检查了4-2:s,将它改为“[A-Za-z]{6}[0-9]{2}”,现在它可以工作了,但你的问题是从这个开始的。我有一个简单的正则表达式来检查字符串是否包含4个字符,后跟2个数字。它在我的测试中起作用,并返回
true
for
Mypass85
好的,我编辑了我的问题。我实际上从一个JPasswordField接收到一个char数组,但我不认为它很重要。最终这个方法得到一个字符串,所以这个
字符串
来自哪个源并不重要。你能使用
System.out.printf(“[%s]”,s)
来打印它并查看您得到了什么。再次感谢,但问题是要查找的字符数。输入:6-2,我的正则表达式检查了4-2:s,将它改为“[A-Za-z]{6}[0-9]{2}”,现在可以工作了,但你的问题是从这里开始的。我有一个简单的正则表达式来检查字符串是否包含4个字符,后跟2个数字为什么
“Mypass85”
,6个字母后跟2个数字,匹配一个需要4个字母后跟2个数字的模式?想想看,
“[a-Za-z]{4,}[0-9]{2,}”
会起作用,因为您的模式实际上是4+字符后跟2+digits@rgettman哦,天哪,我觉得自己很愚蠢(非常感谢。回答这个问题,我会接受它。也许你还需要解释:
模式p=…
@hata模式实际上是一个类实例,但谢谢你。为什么
“Mypass85”
,6个字母后接2个数字,匹配一个需要4个字母后接2个数字的模式?想想
“[a-Za-z]{4,}[0-9]{2,}”
将实现这一技巧,因为您的模式实际上是4+字符后跟2+字符digits@rgettman哦,天哪,我觉得自己很愚蠢(非常感谢。回答这个问题,我会接受。也许你还需要解释:
Pattern p=…
@hata Pattern实际上是一个类实例,但谢谢你。再次感谢你的帮助。有时候让你的大脑爆炸的小事情哈哈。@YassinHajaj我们都去过。有时候需要的只是一个新的问题,wi这是一个全新的视角。再次感谢你的帮助。有时候,让你的大脑爆炸的小事情lol。@YassinHajaj我们都经历过。有时候,需要的只是一个新的问题,一个全新的视角。
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();
}
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();
}