Bonjour,
Je bute sur une regex et je n'arrive pas à continuer mon boulot sans elle, alors après quelques recherches infructueuses je me permet de vous solliciter pour trouver mon bonheur :p.
En bref à partir du code HTML d'une page je souhaite obtenir un lien qui contient un mot clé et capturer différentes partie de ce lien, exemple (ici le mot clé sera "contact") :
Ici j'aimerais tout d'abord trouver ce lien et capturer '<a href="' , 'presse/nous-contacter/' , et '" >Nous contacter</a>', jusque la pas de problème j'y parviens grâce à cette regex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="presse/nous-contacter/" >Nous contacter</a>
Je n'avais pas réfléchi à un cas qui pourrait se présenter, parfois le lien est de la forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part (<a [^>]*href=["']{1})([^"']*)(["']{1}[^>]*>[^<]*?contact[^<]*?</a>)et dans ce cas la... ma regex ne capture pas puisque j'utilisais [^<]* pour ne pas avoir plusieurs liens capturés en même temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a ...><strong>*contact*</strong></a>
Ce que je cherche à faire c'est capturer un lien peu importe ce qu'il y a comme balises (sauf </a> balise fermante du lien..) entre <a> et </a> , mais je n'y parviens passi je vire les [^<]* de chaque coté de contact je me retrouve avec des matchs de plusieurs liens, et je ne sais pas comment faire pour dire "n'importe quel caractère tant qu'il n'y a pas cette chaine (</a>).
Un petit coup de main ne serait pas de refus
J'espère que je ne vous ai pas perdu en route, je ne suis pas très doué pour les explications...
Merci
Partager