Announcement

Collapse
No announcement yet.

RegEx zum Auslesen eines Textblockes

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RegEx zum Auslesen eines Textblockes

    Hallo zusammen,

    ich benötige mal die Hilfe von einem RegEx-Experten Sämtliches Suchen in diversen Büchern und im Internet haben mich nicht wirklich weitergebracht(eigentlich garnicht).
    Ich muss den Teil einer längeren Webseite auslesen. Ich benötige den Teil zwischen

    <div class="formgrouphead"> (kommt im ganzen Dokument 3x vor, ich benötige das erste, die nächsten beiden Vorkommen müssen ignoriert werden)

    und

    <div class='suffix'> (kommt nur einmal vor)

    Dazwischen sind ungefähr 100 Zeilen die ich benötige, um sie hinterher noch von HTML-Tags zu befreien und weiter zu verarbeiten.

    Damit hab ich es versucht, laut diversen RegEx-Tools funktionieren die einzelnen Ausdrücke jeder für sich genommen auch, im Zusammenhang aber eben nicht - was sicherlich an den Hochkommas liegt, ich weiß es aber nicht(irgendwo muss bestimmt auch noch multiline o.ä. mit angegeben werden, ich bin damit aber etwas überfordert momentan ):
    [highlight=vbnet]
    Dim pattern As String = "(<div class="formgrouphead">)(?<para>.*)(<div class='suffix'>)"
    txtStatus.Text = Regex.Match(txtOutput.Text, pattern).Groups("para").ToString
    [/highlight]
    Kann mir jemand sagen, wie die RegEx genau aussehen muss, um den Block aus der Seite herauszubekommen?

  • #2
    <div class="formgrouphead">(.*)<div class='suffix'>

    In group 1 liegt der Inahlt, der zwischen den Tag liegt

    Das entwerten der " im eigentlichen String

    "<div class=\"formgrouphead\">(.*)<div class='suffix'>"
    Christian

    Comment


    • #3
      Hallo Christian,

      den String nimmt VB so aber nicht an, damit hab ich auch schon herumexperimentiert - sowie mit unzähligen Anführungszeichen damits VB-gemäß von der Anzahl her aufgeht . Wie werden denn die Apostrophe im RegEx richtig dargestellt? Und ist das egal, daß die die Ausgabe des RegEx über mehrere Zeilen geht? Ich steh grad völlig auf dem Schlauch...

      Comment


      • #4
        Also der korrekte RegEx muss so aussehen(laut RegExBuddy):
        <div class=\"formgrouphead\">.*?<div class='suffix'>

        Allerdings akzeptiert VB das so nicht("end of" Anweisung erwartet). Wie müssen denn die Sonderzeichen korrekt und VB-konform maskiert werden? Ich kann dazu nix finden...

        Comment

        Working...
        X