Bonjour,
Le résultat que tu obtiens est assez logique, les [] ont une signification dans les expressions régulières, ils permettent de définir une liste de charactères. L'expression régulière
Va capturer "t", ou "h", ou "é".
Quand tu fais :
	
	replaceFirst("chocolat");
 Tu donnes l'ordre de remplacer le premier "t", ou "h", ou "é" de la chaîne "J’aime le [thé]" par "chocolat". Tu obtiens donc "J’aime le [chocolathé]" car le "t" a été remplacé par "chocolat".
Il faut antislasher les [] pour qu'il soient interprétés comme tu le souhaites :
	
	1 2 3 4 5 6 7 8 9 10 11 12
   | public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        // compilation de la regex avec le motif : "thé"
        Pattern p = Pattern.compile("\\[thé\\]");
        // création du moteur associé à la regex sur la chaîne "J’aime le thé."
        Matcher save = p.matcher("J’aime le [thé]");
        System.out.println(save);
        // remplacement de toutes les occurrences de "thé" par "chocolat"
        String s = save.replaceFirst("chocolat");
        System.out.println(s);
    } | 
 Donne :
Pour en revenir à ton problème initial je n'ai pas trop compris ça :
	
		
			
			
				xxxxxxxxxx[xxxx,'N',xxxxxxxx]xx[xxxx,'CC',xx]....
[xxxx,'XC',xx]xxxx[xxxxxxxxx,'CV',xx]....
....
[xxxxxxxxxxx,'A',xx]xxxx[xxxxxxxxx,'B',xx]....
....
....
			
		
 
	 
 Le plus simple serait que tu nous donnes 4 ou 5 vrais exemples, avec ce que tu as en entré, et ce que tu veux en sortie.
Romain.
						
					
Partager