supprimer chaine de caractères avec sélection par expression régulière
Bonsoir,
Je souhaite supprimer une chaine de caractères où la partie centrale de la chaine n'est jamais la même.
exemple:
j'ai cela:
<text top="1034" left="685" width="130" height="12" font="0">COMPANY Inspector </text>
<text top="1065" left="93" width="40" height="12" font="0">Name </text>
<text top="1096" left="93" width="62" height="12" font="0">Signature </text>
<text top="1126" left="93" width="78" height="12" font="0">Date & Time </text>
<text top="1200" left="46" width="110" height="32" font="10">INDRA</text>
<text top="1223" left="60" width="89" height="15" font="11">03-AUG-2016</text>
je veux obtenir se qui suit:
<text>COMPANY Inspector </text>
<text>Name </text>
<text>Signature </text>
<text>Date & Time </text>
<text>INDRA</text>
<text>03-AUG-2016</text>
Je mets ci-dessous une partie du code que j'ai déjà réalisé: je cherche a résoudre mon problème via la classe Pattern mais je ne parviens pas à utiliser les expression régulières correctement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Pattern p = Pattern.compile("<text.*");
try //controle sur l'ouverture du fichier à lire
{
lecteurAvecBuffer = new BufferedReader //instanciation de la classe BufferredReader
(new FileReader(argv[0]));
}
catch(FileNotFoundException exc) //si l'expretion capture est vrai alors l'instruction du bloc catch est exécuté
{
System.out.println("Erreur d'ouverture");
}
i=0; // initialisation de la variable
while ((ligne = lecteurAvecBuffer.readLine())!=null) //boucle permettant la scrutation du fichier à épurer
{
boolean b = ((Pattern.matches("(.*)font=\"\\d{2}\"> </text>",ligne)) || (Pattern.matches("(.*)font=\"\\d\"> </text>",ligne))); // condition permettant de retirer toutes les lignes où il n'y a pas de text
if (ligne.contains(valeur2))//ici je déterminé le début de la page que je souhaite extraire
{
i=1;
}
if (ligne.compareTo(valeur3)==0 && i==1) //ici je déterminé la fin de la page que je souhaite extraire
{
i=0;
}
if ( ((ligne.compareTo(valeur1))!=0) && (i == 1) && !b) //condition à remplir pour que la courant ligne lu soit selectionnée
{
ligne = ligne.replace(p.pattern(), "");
System.out.println(ligne);
} //fin du if
} //fin du while |
Merci pour votre coup de main.
Olivier