如何使用正则表达式在java中查找数字和字母组合的字符串?
给定一个类似于“ABC789 Nusc 2888”的字符串。我如何找到像“ABC789”这样的字符串,它是大写字母和三位数的组合?这是我试过的如何使用正则表达式在java中查找数字和字母组合的字符串?,java,regex,Java,Regex,给定一个类似于“ABC789 Nusc 2888”的字符串。我如何找到像“ABC789”这样的字符串,它是大写字母和三位数的组合?这是我试过的 "[A-Z]*[0-9]{3}" 这有助于我找到“ABC789”,但它也与“288”匹配。我应该怎么做才能只匹配“ABC789”而不是“288”?如果您至少需要一个字母,那么您可以将*更改为+ "[A-Z]+[0-9]{3}" 如果您只需要三个字母,那么可以重复{3}语法 "[A-Z]{3}[0-9]{3}" 如果您有一个范围,可以使用{1,9}
"[A-Z]*[0-9]{3}"
这有助于我找到“ABC789”,但它也与“288”匹配。我应该怎么做才能只匹配“ABC789”而不是“288”?如果您至少需要一个字母,那么您可以将*
更改为+
"[A-Z]+[0-9]{3}"
如果您只需要三个字母,那么可以重复{3}
语法
"[A-Z]{3}[0-9]{3}"
如果您有一个范围,可以使用{1,9}
"[A-Z]{1,9}[0-9]{3}"
您可以执行以下操作: 重新使用时:
Pattern p = Pattern.compile("[A-Z]{3}\d{3}");
Matcher m = p.matcher("ABC789 Nusc 2888");
if(m.matches()){
printf("It matches");
}
使用一次时:
if(Pattern.matches("[A-Z]{3}\d{3}", "Not important XYZ123 2888"))
printf("It matches");
}