Bonjour à tous,
J'ai une chaîne de départ qui représente une balise de lien HTML :
A l'aide d'expressions régulières, je souhaite récupérer la cible du lien "http://www.google.fr"
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="http://www.google.fr">Aller à Google</a>
J'utilise donc les objets java.util.regex.Matcher et java.util.regex.Pattern comme ceci (la variable tag contient mon lien) :
Avec ce code, j'obtiens ce que je souhaite : http://www.google.fr
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));
Seulement voilà, quand je prends un lien avec plusieurs attributs, comme celui-là :
J'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="http://www.google.fr" onclick="javascript:openPop()" rel="...">Aller à Google</a>
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://www.google.fr" onclick="javascript:openPop()" rel="...
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