我要驗證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