1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Regex Problem

Dieses Thema im Forum "Sonstige Sprachen" wurde erstellt von DimpiM, 19. August 2013.

  1. DimpiM

    DimpiM Mitglied

    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 (Text):
    1. <script type="text/javascript">
    2. bla
    3. ..
    4. ..(beliebig viele Zeilen)
    5. ..
    6. </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:
    1. <.*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
     
  2. Spyke

    Spyke Capoeirista Premium-User

    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:
    Code (C#):
    1. internal static string ParseTagAndInnerText()
    2. {
    3.     string str = string.Empty;
    4.     foreach (string str2 in HTMLTags().Keys)
    5.     {
    6.         if (HTMLTags()[str2])
    7.         {
    8.             str = str + str2 + "|";
    9.         }
    10.     }
    11.     str = str.Remove(str.Length - 1);
    12.     return ("(?'htmlbegin'< *(?'htmltag'" + str + @")[^\w<>]* *[^<>]*>)(?'Text'.*?)(?'htmlend'< */ *(\k'htmltag') *>)");
    13. }
    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 von einem Moderator bearbeitet: 23. Mai 2014
  3. alxy

    alxy Erfahrenes Mitglied

    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".
     
  4. HonniCilest

    HonniCilest Erfahrenes Mitglied

    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. DimpiM

    DimpiM Mitglied

    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
     
Die Seite wird geladen...