Bonjour à tous,

J'ai une chaîne de départ qui représente une balise de lien HTML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="http://www.google.fr" onclick="javascript:openPop()" rel="...">Aller à Google</a>
J'obtiens :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.