Permalänk
Medlem

RegExp hjälp...

Vill använda ett regexp för att plocka ut (ta bort) html taggar och dess innehåll.

Exempel en länk: <a href="blabla.html">Min Länk</a>

I detta fall ska alltså hela taggen och innehållet rensas bort ur en sträng och ersättas med ingenting ("").

Så här långt har jag kommit med mitt uttryck i fallet ovan:
<a\b[^>]*>(.*?)</a>

Men jag får det inte att funka riktigt.

Visa signatur

---

Permalänk
Medlem

<(\w+) ?.*>.*</\1>

typ

>>> exp = r"<(\w+) ?.*>.*</\1>" >>> re.match(exp,"<blink>HELLO!</blink>") <_sre.SRE_Match object at 0x82b70a0> >>> re.match(exp,"<blink>HELLO!</blink2>") >>> re.match(exp,"<a href=\"foobar.com\">foobar</a>") <_sre.SRE_Match object at 0xb7dc2ae0> >>> re.match(exp,"<a href=\"foobar.com\">foobar</b>") >>>

Permalänk

$string = '<a href="kalle.htm">Hehe</a>';
$string = preg_replace('/(<[^>]*>)/', '', $string);
echo $string;

Plockar väck ALLA <> taggar i $string.
Språket är PHP.

Permalänk
Medlem

Men han sa ju att han även ville ta bort det innuti taggarna vilket ditt regex ej gör

Permalänk

Ah sant.

Permalänk
Medlem

Jag krånglade till det för mycket.
Det som fungerade som jag ville var som Buffi föreslog, fast förenklat:
<a(.*?)</a>

Visa signatur

---

Permalänk
Medlem

Det där kommer även att matcha t.ex.
"<a</a>" och "<arne</a>"

Om du bara vill ta bort länkar så kör istället typ

<a( [^>]*)?>.*</a>