Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1456 connectés 

  FORUM HardWare.fr
  Programmation
  ASP

  Pb avec un RegEx

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb avec un RegEx

n°571468
DJERO
Yoooup...merde ça marche pas..
Posté le 20-11-2003 à 12:17:27  profilanswer
 

Salut à tous,
 
j'ai une variable : "Lecture" qui contient le texte suivant:
 

Code :
  1. <A href="Tempspromo.html">lien sur rep interne</A></p>
  2. <A href="http://www.dugenou.com">lien externe</A></P>
  3. <A href="../img_dep.asp">sur lien rep différent</A></P>


 
Grace à regEx je cherche à modifier le contenu de la variable avec le code suivant:
 

Code :
  1. Function Modif_lien(txt)
  2.    dim temp,regEx
  3.    temp = txt
  4.  
  5.    Set regEx = New RegExp  ' crée un objet RegExp
  6.    regEx.IgnoreCase = True  ' Casse ignorée
  7.    regEx.Global = True  ' Recherche sur toute la chaîne
  8.  
  9. regEx.Pattern = "<A href="""
  10.    temp = regEx.REPLACE(temp,"<A href=""HTML_visu.asp?page=" )
  11.   regEx.Pattern = "HTML_visu.asp?page=http"
  12.    temp = regEx.REPLACE(temp,"http" )
  13.  
  14.   regEx.Pattern = "HTML_visu.asp?page=../"
  15.    temp = regEx.REPLACE(temp,"" )
  16.  
  17.    Modif_lien=temp
  18. end function


 
J'appel ma fonction comme ceci:

Code :
  1. Response.Write Modif_lien(lecture)


 
Ce que jattends de cette fonction:
Voici les lien tel que je voudrais qu'ils apparaissent:
 

Code :
  1. <A href="HTML_visu.asp?page=Tempspromo.html">lien sur rep interne</A>
  2. <A href="http://www.dugenou.com">lien externe</A>
  3. <A href="img_dep.asp">sur lien rep différent</A>


 
Mais il semble que j'ai un pb car les liens qui me sont renvoyés sont de la forme suivante
 

Code :
  1. <A href="HTML_visu.asp?page=Tempspromo.html">lien sur rep interne</A></p>
  2. <A href="HTML_visu.asp?page=http://www.dugenou.com">lien externe</A></P>
  3. <A href="HTML_visu.asp?page=../img_dep.asp">sur lien rep différent</A></P>


 
Si quelqu'un voit d'ou vient le pb...
 
Merci à vous ;)


Message édité par DJERO le 20-11-2003 à 12:18:52
mood
Publicité
Posté le 20-11-2003 à 12:17:27  profilanswer
 

n°571556
deliriumtr​emens
sic transit intestinal...
Posté le 20-11-2003 à 13:34:59  profilanswer
 

J'ai fâcheusement l'impression que seule ta première regexp est prise en compte.
 
Ce qui pourrait s'expliquer par le fait que tu fais une seule fois
 
Set RegEx=New RegExp (donc tu crées un objet RegExp)
mais que tu l'utilises 3 fois.
 
J'imagine (mais je n'ais plus fait d'ASP depuis un certain temps et jamais de RegExp multiples dans une fonction) qu'il faudrait créer une New RegExp pour chacun de tes tests.
 
-> Set RegEx1=New RegExp  
(premier pattern)
 
Set RegEx2=NewRegExp
(2ème pattern)
 
...
 
 
 
Ce n'est qu'une idée, mais ça semble cohérent au vu des résultats que tu obtiens...


Message édité par deliriumtremens le 20-11-2003 à 13:35:28
n°571570
deliriumtr​emens
sic transit intestinal...
Posté le 20-11-2003 à 13:58:04  profilanswer
 

Après test c'est une connerie, le problème doit venir de tes patterns.
 
Je teste et je reviens :)

n°571582
deliriumtr​emens
sic transit intestinal...
Posté le 20-11-2003 à 14:07:00  profilanswer
 

Arf, c'était tout con, suffit de mettre un antislash dans tes patterns avant les ?
 
->

Code :
  1. regEx.Pattern = "<A href=""" 
  2.    temp =regEx.REPLACE(temp,"<A href=""HTML_visu.asp?page=" )
  3.   regEx.Pattern = "HTML_visu.asp\?page=http"
  4.    temp =  regEx.REPLACE(temp,"http" )
  5.  
  6.   regEx.Pattern = "HTML_visu.asp\?page=../"
  7.    temp =  regEx.REPLACE(temp,"" )


 
Et c'est tout bon

n°571583
DJERO
Yoooup...merde ça marche pas..
Posté le 20-11-2003 à 14:07:46  profilanswer
 

J'ai trouver la solution, certe ce n'est pas super mais ça fonctionne:
 
Ce qui posait problème dans mes patterns était le "?" (qui est réservé) j'ai donc remplacé le ? par des ZZZZ.
 
Lorsque je récupere le résultat de ma fonction, je fais :
CONTENU = Modif_lien(lecture)
CONTENU = Replace("CONTENU","ZZZZ","?" )
 
et tout rentre dans l'ordre
 
Bon, si quelqu'un à une technique plus simple pour eviter le replace, je suis preneur.
 
Merci à toi DeliriumTremens ;)
 
oups, + rapide que moi :D


Message édité par DJERO le 20-11-2003 à 14:08:18
n°571585
deliriumtr​emens
sic transit intestinal...
Posté le 20-11-2003 à 14:08:40  profilanswer
 

Grillaid en mieux ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASP

  Pb avec un RegEx

 

Sujets relatifs
[JAVA] regex (Pattern) : pb synthaxe pour 'split'Les regex, quel cauchemard..
regex: matching multipleprobleme avec RegEx
[PHP - REGEX] J'ai du mal avec les expressions regulières...regex(bbcode) de la balise img avec les attributs width,height,border
[PHP] Un regex simple et un truc plus dur...[PERL] Rechercher un / avec une regex
regex (Pattern) : pb synthaxeProbleme avec les regex
Plus de sujets relatifs à : Pb avec un RegEx


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR