2009-05-04 7 views

Répondre

3

Qu'en est-il de la version non gourmande:

<a class="development" href="(.*?)">X</a> 
+0

Vous effectuez une capture qui ne sera probablement pas utilisée. A part ça, je ne vois pas beaucoup de différence dans l'utilisation de cette version de Gumbo. – kch

4

Essayez cette expression régulière:

<a class="development" href="[^"]*">X</a> 
+0

les attributs entre guillemets simples sont également valides html. et, selon la source, vous pouvez même avoir html invalide, par quel point vous êtes foutu. – kch

1

Regex est généralement une mauvaise solution pour l'analyse HTML, un sujet qui est discuté chaque fois qu'une question comme celle-ci est posée. Par exemple, l'élément peut envelopper sur une autre ligne, que ce soit comme

<a class="development" 
    href="[variable content]">X</a> 

ou

<a class="development" href="[variable content]">X 
</a> 

Qu'est-ce que vous essayez d'atteindre?

En utilisant JQuery, vous pouvez désactiver les liens avec:

$("a.development").onclick = function() { return false; } 

ou

$("a.development").attr("href", "#"); 
+0

cette solution supposerait que Itay Moav utilise la bibliothèque jquery et que c'est une analyse côté client qu'il souhaite réaliser – vrish88

+0

@ vrish88: Correct. Ainsi la question "qu'essayez-vous de réaliser?" et le commentaire "En utilisant JQuery vous pourriez ..." – CoverosGene

1

Voici une version qui permettra de mettre toutes sortes de mal dans l'attribut href.

/<a class="development" href=(?:"[^"]*"|'[^']*'|[^\s<>]+)>.*?<\/a>/m 

Je suis aussi en supposant X va être variable, donc j'ajouté un match non-avide là pour le manipuler, et le /m signifie sauts de ligne . matchs aussi.

Questions connexes