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