Regex Problem

#1
Guten Abend miteinander,

Ich erstell das Thema mal unter "sonstige Sprachen" da sich der Regex Ausdruck in den einzelnen Sprachen nicht ändert. Und zwar hab ich das Problem das ich ein gewissen html-Tag mit Regex filtern möchte
Code:
<script type="text/javascript">
bla
..
..(beliebig viele Zeilen)
..
</script>
und zwar möcht ich den ganzen "script" Block filtern, wichtig ist dabei, dass ich auf "type="text/javascript"" schaue.

Ich hab schon sowas zusammen geschustert, aber das funktioniert noch nicht so wie ich das will
HTML:
<.*type=.text/javascript.[^>]*>[\s](.*?)[\s]*<\s*/\s*script>
ich hoffe ihr könnt mir da helfen, ich wäre euch auf jeden Fall sehr dankbar
 

Spyke

Capoeirista
Premium-User
#2
Ich hab ma per Reflector in meinen Wikiparser geschaut der macht auch sowas ähnliches.
Weiß nicht mehr wo der Quellcode ist :rolleyes:

Habs ausm Reflector kopiert:
C#:
internal static string ParseTagAndInnerText()
{
    string str = string.Empty;
    foreach (string str2 in HTMLTags().Keys)
    {
        if (HTMLTags()[str2])
        {
            str = str + str2 + "|";
        }
    }
    str = str.Remove(str.Length - 1);
    return ("(?'htmlbegin'< *(?'htmltag'" + str + @")[^\w<>]* *[^<>]*>)(?'Text'.*?)(?'htmlend'< */ *(\k'htmltag') *>)");
}
Die Methode HTMLTags liefert als IEnuemrable die erlaubten zu prüfenden Tags.
Über die Match Bezeichnung 'htmltag' wüsstest du dann welcher tag aktuell gefunden wurde,
im Prinzip müsstest du jetzt hier nur noch ne match Bezeichnung für die Attribute mit anfügen.

Oder machst dann einfach ein Contains oder abgespecktes Regex auf 'htmlBegin'.

Vielleicht hilfts ja bissel.
Ups, ist übrigens C#
 
Zuletzt bearbeitet von einem Moderator:

alxy

Erfahrenes Mitglied
#3
Stellt (hier beliebige Programmiersprache einfügen) keine Funktionaötät zur Arbeit mit dem DOM bereit. Bin immer sehr skeptisch bei "ich fuchtel mit regexen im HTML rum".
 

HonniCilest

Erfahrenes Mitglied
#4
Ich würde bei xml/html auch immer von Regex abraten. Mit welcher Sprache arbeitest du tatsächlich? Ich bin mir sicher hier gibt es Parser, mit denen du viel sicherer unterwegs bist.
 
#5
Grüß euch,
jup, seh ich mittlerweile auch so. Regex ist da viel zu fehleranfällig. Ich arbeite tatsächlich mit C#. Da hab ich jetzt einen Parser gefunden mit dem ich mich jetzt bisschen spiele... Html Agility Pack
Vorallem ist der auch deutlich schneller als solche regulären Ausdrücke.
Danke für eure Hilfe