Thread Suchen und Ersetzen, auch wenn kein Text enthalten (10 answers)
Opened by jan99 at 2014-09-22 10:13

clms
 2014-09-22 13:07
#177452 #177452
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Ich würde folgende Regex verwenden:
<span\b[^>]*>([^<]*?)</span>

Die hintere Änderung * statt + wurde schon erklärt.
Die vordere Änderung (\b[^>]* statt \s+[^>]+) bewirkt, dass auch <span> ohne Attribute gematcht wird. Das ist bei <span> zwar selten, kann aber vorkommen.
(Die Details: \b matcht das Ende eines Wortes [zero width], hinter span muss also etwas kommen, dass auf \W matcht, [^>]* matcht alles bis zum nächsten >)

Allgemein hat der Ansatz mit der Regex aber das Problem, dass er nicht funktioniert, wenn innerhalb des <span>...</span> noch anderes Markup vorkommt, z.B. <b>...</b> oder <br>. Sicherer ist ein Ansatz, der einen richtigen HTML-Parser verwendet, z.B. mit CPAN:HTML::TreeBuilder.

View full thread Suchen und Ersetzen, auch wenn kein Text enthalten