Expression régulière (regex)
Bonjour,
Je dispose d'un chaine dont je souhaite vérifier la structure.
J'ai donc pensé à une expression régulière pour assurer cette verification.
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class Test {
public static void main(String[] args){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String modele="^[\\w+\\.]{1,9}+@([T2J\\b])$";
System.out.println("entrée une chaine merçi");
String chaine=in.readLine().trim();
if(Pattern.matches(modele, chaine))
System.out.println("chaine conforme");
else
System.out.println("erreur dans la chaine");
}
catch(Exception es){
es.printStackTrace();
}
}
} |
Je voulais un chaine composée d'un ensemble maximum de 9 caractères lettres et chiffres compris, puis un @ et enfin se terminant par T2J
Mais une exception du type java.util.regex.PatternSyntaxException est levée, m'informant de la non conformité de mon modèle.
Quelqu'un saurait-il m'expliquer ce qui ne va pas ?
Merci d'avance pour votre aide.
Expression régulière (regex)
slt le format de l'expression regulaire me semble correct mais je ne conpremd pas pourquoi le controle au niveau de l'expression ne n'excecute pas
code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public void setrecepteur(String a) throws MessageBox{
String modele="^\\w{1,9}@T2J$";
if(a.equals("")){
//ce controle s'execute bien
throw new MessageBox("veuiller renplir le champ manquant");
}
if(Pattern.matches(modele,a)){
//voici mon probleme car cette condition n'est pas excute
throw new MessageBox("champ non coforme");
}
else
recepteur=a;
} |
alors que faire ?
a++