RegEx != RegEx? Html entfernen..

08/02/2011 - 13:18 von Dominik | Report spam
Hallo

Ich bin gerade dabei ein Service zu schreiben, bei dem es notwendig
ist, alle HTML Tags und Attribute rauszufiltern. Nach ich ein wenig
Google bemüht habe, bin ich auf folgende RegEx gestoßen, welches
scheinbar perefekt in JavaScript alle Tags etc. entfernt:

/<\/?[^>]+>/gi --> macht zb aus "bla bla <b>fettes bla bla</b> bla
bla" einfach "bla bla fettes bla bla bla bla"

Scheinbar muss das in .net jedoch anders formuliert werden? Wisst ihr
woran es scheitert oder besser, wie das RegEx in C# aussehen würde?

Vielen Dank,
Dominik
 

Lesen sie die antworten

#1 Stefanie Wiemann
08/02/2011 - 15:54 | Warnen spam
Hallo Dominik,
ich habe mich auch gerade mit RegularExpressions in C#
herumgeschlagen :-).
Dabei bin ich auf folgendes Tutorial gestoßen:
http://www.regular-expressions.info/tutorial.html
Dort gibts u.a. die Kapitel: Repetition oder Grouping & Backreferences
dort wird eine RegEx erklàrt, die ein beliebiges öffnendes HTML-Tag
und das dazugehörige schließende einschließlich des dazwischen
befindlichen Textes findet.

In Anlehnung an die dort angegebene RegEx würd ich sagen, Du brauchst
sowas wie dies hier:
</*[A-Za-z][A-Za-z0-9]*>

Ist nicht ganz astrein, weil der "/" auch mehrfach auftreten könnte,
außerdem dürfen keine Attribute enthalten sein.

Wenn das noch nicht reicht, würde ich es hiermit probieren:

</{0,1}[A-Za-z][A-Za-z0-9]*.*?>

Hab ich jetzt beides allerdings nicht getestet.

Aber die Beispiele aus dem o.g. Tutorial haben bei mir mit C#
eigentlich immer funktioniert.
Scheint also der richtige "Dialekt" zu sein.

HTH
Gruß
Steffi

Ähnliche fragen