Probleme regexp
khalous91
Messages postés
24
Statut
Membre
-
yamdjio Messages postés 91 Statut Membre -
yamdjio Messages postés 91 Statut Membre -
Salut alors voila , je veux extraire une partie de mon texte en utilisant l'API regex mais j'ai un petit peu de mal!
texte à traiter :
en faite je veux recuperer ce qu'il y a avant #< et ce qu'il y a après #>
j'ai penser a utiliser sa :
String texte="fichierCSH.txt";
Pattern p=Pattern.compile("");
Matcher m=p.matcher(texte);
while(m.find())
System.out.println(m.group(1));
mais je ne sais pas quoi mettre dans le pattern p au niveau du motif
help me please :)
texte à traiter :
#bzert
#polipolipoli
#sdfgldhfsg_85465ffdgdfgf
#sdfsdf-988898_iuujsdf
bnv 111
#----------------------------------------------------------------------
#
# Variables
#----------------------------------------------------------------------
#> hfghjhgjgh
Non ! Ne pars pas je t'en prie. Reste s'il te plait. Je me suis comporté comme une idiote, pardonne moi. Non laisse-moi finir s'il te plait. Hier quand tu m'as avoué tes sentiments j'ai pris peur, non parce que je ne ressentais pas la même chose mais parce que j'avais peur de souffrir. J'ai peur de laisser mon bonheur être tes mains. Tu serais le seul responsable de sa destruction si un jour tu décides de t'en aller et je ne veux pas devenir dépendante de quelqu'un.
#>dfgdfgdfgdfgdf
#----------------------------------------------------------------------
# Variables
#----------------------------------------------------------------------
tyjtyjy
#----------------------------------------------------------------------
# Repertoires
#----------------------------------------------------------------------
- endif
en faite je veux recuperer ce qu'il y a avant #< et ce qu'il y a après #>
j'ai penser a utiliser sa :
String texte="fichierCSH.txt";
Pattern p=Pattern.compile("");
Matcher m=p.matcher(texte);
while(m.find())
System.out.println(m.group(1));
mais je ne sais pas quoi mettre dans le pattern p au niveau du motif
help me please :)
2 réponses
Bonjour,
pour ce que tu veut faire, il n'est pas forcement nécessaire d'utiliser une regexp, tu peut le faire en suivant les étapes:(malgré que je ne voit pas de #<)
si le texte sera toujours sous forme de ligne après ligne et que #< et #> commenceront toujours en début de ligne:
-tu parcours toutes les lignes a la recherche de celle qui commence par #<, lorsque tu la trouve, tu continue ton parcours des lignes en prenant toutes les lignes jusqu'à ce que tu trouve une qui commence par #>.
pour utiliser le pattern matcher, il te faut avoir le texte sous forme dans une chaine de caractère d'abord. et le pattem matcher sert plus a vérifier qu'une chaine est conforme a une expression régulière.
pour ce que tu veut faire, il n'est pas forcement nécessaire d'utiliser une regexp, tu peut le faire en suivant les étapes:(malgré que je ne voit pas de #<)
si le texte sera toujours sous forme de ligne après ligne et que #< et #> commenceront toujours en début de ligne:
-tu parcours toutes les lignes a la recherche de celle qui commence par #<, lorsque tu la trouve, tu continue ton parcours des lignes en prenant toutes les lignes jusqu'à ce que tu trouve une qui commence par #>.
pour utiliser le pattern matcher, il te faut avoir le texte sous forme dans une chaine de caractère d'abord. et le pattem matcher sert plus a vérifier qu'une chaine est conforme a une expression régulière.
Pour parcourir toutes les lignes, tu peut utiliser la classes bufferedreader.
exemple (je l'ai fais dans notepad, je ne l'ai pas compile, a toi de me dire s'il fonctionne)
exemple (je l'ai fais dans notepad, je ne l'ai pas compile, a toi de me dire s'il fonctionne)
try {
File f = new File("fichierCSH.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
StringBuilder str=new StringBuilder("");
try {
String line = br.readLine();
//premiere ligne
boolean start=false;
while (line != null) {
if(line.startsWith("#<")
{
start=true; //on commence a sauvegarder
str.append(line+" "); //on prend cette ligne
line=br.readLine(); //prochaine ligne
}
while(start==true && line!=null){
if(!line.startsWith("#>") //si on ne commence pas par #>
{
str.append(line+" ");//on n'est pas encore a la fin on sauvegarde (on met un espace apres l'ajout)
line=br.readLine();//prochaine ligne
}
else{
break; //on sort de petit while
start=false; //on recommence a chercher les lignes qui commence par #<
}
}
line = br.readLine();
}
fr.close();
br.close();
} catch (IOException exception) {
System.out.println("Erreur de lecture : " + exception.getMessage());}
} catch (FileNotFoundException exception) {
System.out.println("File Not Found");
oui dsl en faite c'est #< hfghjhgjgh et non pas "#> hfghjhgjgh".
Tu pourraît me montrer comment je pourraît faire pour parcourir toutes les lignes a la recherche de celle qui commence par #< et #> stp ?
Thinks