# Regex Problem



## DimpiM (19. August 2013)

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

```
<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

```
<.*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 (20. August 2013)

Ich hab ma per Reflector in meinen Wikiparser geschaut der macht auch sowas ähnliches.
Weiß nicht mehr wo der Quellcode ist 

Habs ausm Reflector kopiert:

```
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#


----------



## alxy (20. August 2013)

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 (20. August 2013)

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.


----------



## DimpiM (21. August 2013)

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


----------

