Bonjour à tous,
je suis entrain d'essayer de valider la saisie d'une plaque minéralogique.
Comme vous le savez les nouvelles plaques sont du format AA000AA , avec quelques limitation sur les lettres du début et de fin (pas de SS et WW).
J'ai donc essayé la REGEX suivante :
Comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ^(?(?!SS|WW)[A-HJ-NP-TV-Z]{2})[0-9]{3}(?(?!SS)[A-HJ-NP-TV-Z]{2})$
A priori la regex fonctionne : http://regex101.com/r/hF7dH3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String pattern = "^(?(?!SS|WW)[A-HJ-NP-TV-Z]{2})[0-9]{3}(?(?!SS)[A-HJ-NP-TV-Z]{2})$"; String testStr = "AA000AA"; Pattern.matches(pattern,testStr);
Mais Java me retourne une exception au niveau du Negative lookahead :
06-18 14:21:37.243: W/System.err(7528):java.util.regex.PatternSyntaxException: Use of unimplemented feature near index 4:
06-18 14:21:37.244: W/System.err(7528): ^(?(?!SS|WW)[A-HJ-NP-TV-Z]{2})[0-9]{3}(?(?!SS)[A-HJ-NP-TV-Z]{2})$
06-18 14:21:37.245: W/System.err(7528): ^Une idée de ce qui cause le problèmeet de comment le résoudre ?
Merci
Edit--
En épluchant la doc j'ai trouvé la raison :
Une des synthaxe non supportée :
Du coup quel est la solution pour passer outre ?The conditional constructs (?(condition)X) and (?(condition)X|Y),
Partager