nsrms
Messages postés3Date d'inscriptiondimanche 15 juin 2014StatutMembreDernière intervention24 juin 2014
-
15 juin 2014 à 22:37
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023
-
15 juin 2014 à 22:57
Bonjour,
je veut verifier si la ligne en entrée contient une expression de la forme (xxxx;xxxx;xxxx) avec xxxx ensemble de caractère(peut etre cractère spéciale ou un numero ou n'importe quel caractère . pour cela j'ai ecrit le code suivant
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126 Modifié par KX le 15/06/2014 à 23:02
Bonjour,
Il y a des caractères spéciaux dans les expressions régulières, et les parenthèses en font partis, il faut donc les échapper avec des \\
De plus, dans ton exemple tu as 3 points virgules, mais dans ton expression tu n'en as que 2. Il faut donc avoir le bon compte.
Et pour cela il faut aussi s'assurer que dans tes .* tu n'ais pas un point virgule qui se promène, pour ça il faudrait plutôt utiliser [^;]*
J'en profite pour utiliser directement la méthode matches de la classe String plutôt que de passer par un Pattern/Matches superflue.
public class Test
{
public static boolean isforme(String chaine)
{
return chaine.matches("\\([^;]*;[^;]*;[^;]*\\)");
}
public static void main(String[] args)
{
System.out.println(isforme("(xxxxxxx;xxxxxxx;xxxxx)"));
}
}