OVH Cloud OVH Cloud

Expression régulière (encore désolé ...)

12 réponses
Avatar
Francois
Salut à tous,

Je récupère ce type de ligne dans des fichiers :

<FROM>toto@test.com</FROM>
<TO>test@test.com</TO>
etc...

Je voudrai à l'aide d'expressions regulières récuperer dans une variable le
contenu entre 2 tags.

Comment feriez-vous pour le FROM par exemple ?

Merci d'avance.

--
Francois.

2 réponses

1 2
Avatar
Paul Gaborit
À (at) Wed, 18 May 2005 16:24:48 +0200,
"Francois" écrivait (wrote):
"Stephane Zuckerman" a écrit dans le message de news:


Mais en fait, un parseur XML serait probablement préférable.
J'ai aussi pensé cela, mais je me suis dit que l'OP savait ce qu'il

demandait. :-)


C'est tout à fait ce que je voulais, le but était justement d'abandonner un
parser XML qui donne plutôt l'impression d'une usine à gaz alors que les
regexp conviennent très bien à ces "petits" traitements.


C'est un peu comme si vous nous disiez : j'ai une perceuse qui ne fonctionne
pas bien alors j'ai décidé de la remplacer par un simple tournevis. Un
tournevis ne remplacera jamais une perceuse (sauf pour quelques usages très
spécifiques) et il existe de nombreux modèles de perceuses. Traduit en Perl,
ça donne :

- Il existe de nombreux moyens (modules) de "parser" du XML à partir de
Perl. Ces modules sont plus ou moins adaptés à votre besoin. Celui que vous
utilisez actuellement (lequel d'ailleurs) ne semble pas répondre
correctement. En avez-vous essayé d'autres (lesquels) ?

- Les regexp "simples" ne peuvent pas couvrir tous les cas imaginables même
sur de si "petits" traitements. Sauf si vos fichiers XML sont sous une forme
particulière (ce que ne garantit absolument pas XML). En utilisant les
mécanismes avancés des regexp, il est théoriquement faisable de bien faire
mais l'aspect usine à gaz sera alors flagrant... et vous reviendrez vite vers
un parser XML.

Merci encore de m'avoir mis sur la voie, maintenant tout roule !


... jusqu'au prochain fichier XML ne répondant aux critères implicites dus à
l'usage des regexp simplistes !

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>



Avatar
Francois
"Paul Gaborit" a écrit dans le message de
news:

Bonjour,

C'est un peu comme si vous nous disiez : j'ai une perceuse qui ne
fonctionne
pas bien alors j'ai décidé de la remplacer par un simple tournevis. Un
tournevis ne remplacera jamais une perceuse (sauf pour quelques usages
très
spécifiques) et il existe de nombreux modèles de perceuses.


Dans notre cas le tournevis est largement suffisant, cf. la suite de ma
réponse.

- Il existe de nombreux moyens (modules) de "parser" du XML à partir de
Perl. Ces modules sont plus ou moins adaptés à votre besoin. Celui que
vous
utilisez actuellement (lequel d'ailleurs) ne semble pas répondre
correctement. En avez-vous essayé d'autres (lesquels) ?


Le parser XML utilisé était celui de SOAP::Lite, un "tiny parser" donc. Oui,
j'en ai étudié d'autres dont je n'ai plus les noms en tête.

- Les regexp "simples" ne peuvent pas couvrir tous les cas imaginables
même
sur de si "petits" traitements. Sauf si vos fichiers XML sont sous une
forme
particulière (ce que ne garantit absolument pas XML). En utilisant les
mécanismes avancés des regexp, il est théoriquement faisable de bien faire
mais l'aspect usine à gaz sera alors flagrant... et vous reviendrez vite
vers
un parser XML.


Mettons les choses au clair, il ne s'agit pas réellement de XML mais d'un
format de fichier que nous avons décidé entre plusieurs équipes de
développpement. Un format avec des tags de début et de fin , une ligne pour
chaque instruction etc...
Bref, un format bien défini avec des specs écrites.

Merci encore de m'avoir mis sur la voie, maintenant tout roule !
... jusqu'au prochain fichier XML ne répondant aux critères implicites dus

à
l'usage des regexp simplistes !


Le fichier répondra aux critères que nous avons définis.

L'utilisation d'un parser XML était une erreur, puisque notre format ne
répond en rien à du XML standard. La confusion règne autour de XML, les gens
voient des tags et en déduisent automatiquement du XML ....

A aucun moment je ne fais allusion à XML dans mon premier message.

Merci.

--
Francois.


1 2