gros problème avec les expressions regulières [PERL]

gros problème avec les expressions regulières [PERL] - Perl - Programmation

Marsh Posté le 30-05-2003 à 17:41:24    

Quand j'ai quelque chose à matcher comme ca (c'est simplifié) :
 
(truc\s+)((\S+\s+)*)(truc\s+)
 
         <-- +/- -->
 
 
et bien souvent, il refuse de trouver la fin de ce genre de chaine !
c'est le * qui merde, il faudrait pourvoir dire, \S+ sauf truc (autrement dir : ni \s ni "truc" )...comment faire ????
 
Car le probleme c'est que lorsqu'on fait un [^  ], on ne peut pas mettre de chaine de caractere, mais juste 1 caractère !!!!

Reply

Marsh Posté le 30-05-2003 à 17:41:24   

Reply

Marsh Posté le 30-05-2003 à 20:04:19    

La solution à ton problème c'est la "zero-width negative lookahead assertion":
 
(?!...)

Reply

Marsh Posté le 31-05-2003 à 01:07:04    

juste une chose, vu que tu récupères tout dans ta chaine, pourquoi tu ne fais pas un split?? bcp plus efficace et simple à utiliser ensuite

Reply

Marsh Posté le 01-06-2003 à 01:07:23    

Je ne demande qu'a utiliser des techiques qui marchent...
merci
 
c quoi un split ????
c quoi la "zero-width negative lookahead assertion" ?
 
rassurez-vous je cherche de mon côte aussi !
 
 
 
en fait, le truc que je fait, c'est un peu comme traiter des balises XML.... je trouve ma balise de debut... et j'attend ma balise de fin correspondante avant d'arreter la recherche....
 
car j'ai besoin de placer un marqueur dans la balise de debut et de fin....
 
remarquez, je pourrais ne placer un marqueur que dans celle de debut..... j'y reflechi......
 
enfin, là je peux resoudre le PB autrement, mais dans d'autres cas de figure, je ne peux pas ...
 
exemple :
 
<Balise1> blabla </Balise1> <Balise2> blabla </Balise2> <Balise3> blabla </Balise3>
 
et chaque blabla peut varier, mais moi, c'est juste les balises qui m'interressent ! comment faire... (attention, j'ai mis du XML, mais dans ma structure ca n'en est pas !
 
 
http://www.comtech-pcs.com/regexp.html


Message édité par NounouRs le 01-06-2003 à 01:45:31
Reply

Marsh Posté le 01-06-2003 à 11:50:48    

Nounours, tu peux nous filer un exemple concrès de ce que tu traite comme données ???
 
J'ai déjà bossé des scripts Perl qui récupéraient le contenu de deux balises (HTML, XML) et ça marchait très bien
 
Mais là, j'ai besoin d'avoir un visuel sur ce que tu dois traiter comme datas


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
Reply

Sujets relatifs:

Leave a Replay

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