2009-05-04 13 views

risposta

3

cosa circa la versione non-avida:

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

Stai eseguendo un'acquisizione che probabilmente non verrà utilizzata. Oltre a questo, non vedo molta differenza nell'usare questa o la versione di Gumbo. – kch

4

Prova questa espressione regolare:

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

gli attributi a virgola singola sono anche html validi. e, a seconda della fonte, puoi anche avere un html non valido, a quel punto sei fregato. – kch

1

Regex è generalmente una brutta soluzione per l'analisi HTML, un argomento che viene discusso ogni volta che viene posta una domanda come questa. Ad esempio, l'elemento potrebbe avvolgere su un'altra linea, sia come

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

o

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

Cosa stai cercando di raggiungere?

utilizzando jQuery è possibile disabilitare i collegamenti con:

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

o

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

questa soluzione presuppone che Itay Moav stia utilizzando la libreria jquery e che si tratti di un parsing del client che desidera ottenere – vrish88

+0

@ vrish88: corretto. Quindi la domanda "Cosa stai cercando di ottenere?" e il commento "Usando JQuery potresti ..." – CoverosGene

1

Ecco una versione che consente di inserire tutti i tipi di male nell'attributo href.

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

che sto assumendo anche X sta per essere variabile, così ho aggiunto un match non-greedy lì per gestire la cosa, e la /m significa . partite interruzioni di linea troppo.

Problemi correlati