2010-07-28 5 views
0

J'ai un problème. Je veux trouver l'étiquette d'acnchor de forme d'url qui composent l'étiquette de «titre» dans l'étiquette d'ancre. Comment puis-je faire correspondre la chaîne et récupérer l'URL en utilisant l'expression régulière? expression régulière: Trouver l'URL de l'étiquette d'ancrage

example: 
<a href="http://www.test.com" title="xyz">this is test</a> 

grâce

+0

Quelle langue utilisez-vous (.NET, Java, JavaScript, PERL, Python quelque chose d'autre)? Les implémentations de RegEx diffèrent dans différentes langues, c'est donc essentiel pour répondre à la question. Vous devriez également nous faire savoir si vous avez simplement ce type de chaîne, ou des documents HTML entiers. – Oded

+0

@Oded: j'utilise php –

+0

à l'avenir, utilisez _all_ les balises qui s'appliquent à la question. Vous avez jusqu'à 5 tags – Oded

Répondre

4

<a\s+([^>]*)href="(https?:\/\/([^"]*))"\s+([^>]*)title="xyz"(.*?)>(.*?)<\/a> vous pouvez obtenir l'URL par match partiel $2, vous pouvez l'essayer here

+0

Notez que les valeurs d'attribut peuvent contenir des caractères simples '>'. – Gumbo

+0

vrai, mais c'est bon non? car il n'arrêtera pas de faire correspondre les URLs jusqu'à ce qu'il atteigne "à cause de cela" [^ "] *' – Ties

2

Pour être honnête, j'utiliser une bibliothèque analyse HTML pour obtenir exactement le contenu de l'attribut href.

0

/href="(.*?)(?=".*?title)/

vous devrez couper le href=" dès le début du match

/abc(?=xyz)/ préanalyse positif -> correspond abc si abc est suivie par xyz

Questions connexes