Probleme regexp

Fermé
khalous91 Messages postés 18 Date d'inscription mercredi 15 avril 2015 Statut Membre Dernière intervention 17 juin 2015 - 18 mai 2015 à 11:22
yamdjio Messages postés 88 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 - 20 mai 2015 à 09:58
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 :
#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

yamdjio Messages postés 88 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
18 mai 2015 à 17:59
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.
0
khalous91 Messages postés 18 Date d'inscription mercredi 15 avril 2015 Statut Membre Dernière intervention 17 juin 2015
19 mai 2015 à 10:01
Salut yamdjio
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
0
yamdjio Messages postés 88 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
20 mai 2015 à 09:58
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)

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");
0