我要验证Java中的字符串,其中包含以下顺序:特定字符串格式
SAVA950720HMCLZL04
也就是说,四个字母,六个数字,六个字母和最后两个数字。
我正在阅读有关正则表达式的内容,但我无法理解如何实现它。
我做了这种方法来验证前四个字母。
public void name(String s){
Pattern pat=Pattern.compile("[a-zA-z]{4}");
Matcher mat=pat.matcher(curp);
if(mat.matches()){
JOptionPane.showMessageDialog(null, "Validating");
}else{
JOptionPane.showMessageDialog(null, "Check your data. please", "error",JOptionPane.ERROR);
}
}
我想我可能是错的,因为我不知道如何正确地执行它,什么可能是正确的解决我的问题任何帮助?
注意['[AZ]'匹配不仅仅是字母(http://stackoverflow.com/a/29771926/3832970 )。 'matches()'方法锚定正则表达式,所以你只能匹配4个字符的字符串。所以,你需要'匹配(“[A-ZA-Z] {4} [0-9] {6} [A-ZA-Z] {6} [0-9] {2}”)' –
'Az '应该是'AZ'。为了表示数字,可以使用'[0-9]'或'\ d'(在字符串文字中,你需要另外转义'''',所以它看起来像'“\\ d”')。 'matches()'检查正则表达式是否可以匹配整个字符串,而不仅仅是它的一部分。 – Pshemo