Bonjour à tous,
J'ai une chaîne de départ qui représente une balise de lien HTML :
<a href="http://www.google.fr">Aller à Google</a>
A l'aide d'expressions régulières, je souhaite récupérer la cible du lien "http://www.google.fr"
J'utilise donc les objets java.util.regex.Matcher et java.util.regex.Pattern comme ceci (la variable tag contient mon lien) :
1 2 3 4
| Pattern p = Pattern.compile("<a href=['\"](.*)['\"]>(.*)</a>");
Matcher m = p.matcher(tag);
if (m.find()) System.out.println(m.group(1)); |
Avec ce code, j'obtiens ce que je souhaite : http://www.google.fr
Seulement voilà, quand je prends un lien avec plusieurs attributs, comme celui-là :
<a href="http://www.google.fr" onclick="javascript:openPop()" rel="...">Aller à Google</a>
J'obtiens :
http://www.google.fr" onclick="javascript:openPop()" rel="...
J'ai bien compris pourquoi : le motif de mon expression extrait toute la chaîne compris entre le premier et le dernier double-guillemets (") de la chaîne.
Le truc c'est que j'ai bidouillé un peu mon motif mais je n'arrive pas à obtenir ce que je veux. Pour résumé il faudrait extraire uniquement le contenu de l'attribut "Href".
Merci par avance, je sèche un peu.
Bonne soirée.
Partager