Expressions regulières et sous motifs

Expressions regulières et sous motifs - PHP - Programmation

Marsh Posté le 20-07-2004 à 00:01:36    

Bonjour,
le titre n'étant pas très explicite laissez moi vous exposer mon pb.
Je souhaite recupérer depuis un fichier texte un certain nombres de données correspondant à des noms de reference en utilisant la fonction preg_match_all de php et les expressions régulières. Mon script fonctionne bien à une grosse exception. En fait, dans le fichier texte, pour un même nom de référence il peut y avoir plus d'une entrée alors simplement nommées 2,3,4...n (n variable entre 0 et 30). Ce sont ces entrées que je ne sais pas recuperer.
Pour partir sur un exemple qui sera plus parlant disons que je voudrais recuperer tous les "blabla" d'un fichier de ce type :

Code :
  1. <DEBUT>
  2. <NOMREFERENCE1>blablaàdetecter+findublablaàcollecter<FINNOMREFERENCE1>
  3. <NOMREFERENCE2>blablaàdetecter+findublablaàcollecter<FINNOMREFERENCE2>
  4.   <debchaine1>blablaàdetecter+findublablaàcollecter<finchaine1>
  5.   <debchaine2>blablaàdetecter+findublablaàcollecter<finchaine2>
  6.   <debchaine3>blablaàdetecter+findublablaàcollecter<finchaine3>
  7.   ...
  8.   <debchaineN>blablaàdetecter+findublablaàcollecter<finchaineN>
  9. <FIN>


 
Est-il possible d'utiliser pour celà des sous motifs dans une expression regulière?
 
Merci d'avance pour vos réponses et suggestions :)

Reply

Marsh Posté le 20-07-2004 à 00:01:36   

Reply

Marsh Posté le 20-07-2004 à 00:17:28    

(\<debchaine[0-9]{1}\>(.*)\<finchaine[0-9]{1}\> ) ???


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 20-07-2004 à 00:22:54    

Je vais essayer. A quoi correspond {1}? Je n'avais encore jamais vu (oui je débute en regex...)

Reply

Marsh Posté le 20-07-2004 à 00:24:51    

Ah oui mais en fait la difficulé de mon pb c'est que dans le fichier texte, je peux avoir un NOMREFERENCE et sa suite de chaines indicées que je veux ignorer. En gros il faut que je fasse ce que tu m'indiques à condition d'être dans un bon NOMREFERENCE. Je sais pas si c'est très clair :D (il est tard)


Message édité par doriAngrAy le 20-07-2004 à 00:25:06
Reply

Marsh Posté le 20-07-2004 à 00:27:14    

En fait je crois que je vais imbriquer 2 preg_match_all. un premier qui extraira les chaines NOMREFERENCES voulues avec les sous chaines indicées puis un autre qui recuperera tous les blabla. Enfin si aucune solution n'existe avec une seule expression regulière.

Reply

Marsh Posté le 20-07-2004 à 00:28:57    

Ou alors avoir un motif dynamique


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 20-07-2004 à 00:30:10    

T509 a écrit :

Ou alors avoir un motif dynamique


ah c'est possible donc? comment?

Reply

Marsh Posté le 20-07-2004 à 00:46:36    

$motif = $parametre."(\<debchaine[0-9]{1}\>(.*)\<finchaine[0-9]{1}\> )".$fin_motif;
 
si c'est dans une boucle est que les paramètres changent à chaque tour, le motif change aussi.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 20-07-2004 à 09:43:53    

ok. Je m'y remets après une bonne nuit de sommeil. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed