Flo: RegEx: Alle <table>-Tags extrahieren - trotz Zeilenumbrüchen

Hallo Team,

ich würde gerne alle <table>-Tags einer Webseite ausgeben. Das Problem ist, dass der Code auch Zeilenumbrüche berücksichtigen soll und genau hier stehe ich wie der Ochs vorm Berg...

<table.*<\/table>

gibt mir nichts aus, aufgrund der Zeilenumbrüche.

<table(.*\s*)*<\/table>

bringt auch keine Ergebnisse, da stürzt mein RegEx-Tester ab.

Auch:
<table(?:.*\s*)*<\/table>

verreckt.

Bitte um Hinweise, wo sich mein Denkfehler versteckt...

Danke!
Florian

  1. ich würde gerne alle <table>-Tags einer Webseite ausgeben. Das Problem ist, dass der Code auch Zeilenumbrüche berücksichtigen soll und genau hier stehe ich wie der Ochs vorm Berg...

    <table.*<\/table>

    Das ist keine regex sondern kaputtes HTML

    gibt mir nichts aus, aufgrund der Zeilenumbrüche.

    <table(.*\s*)*<\/table>

    bringt auch keine Ergebnisse, da stürzt mein RegEx-Tester ab.

    Das ist keine regex sondern kaputtes HTML

    Auch:
    <table(?:.*\s*)*<\/table>

    verreckt.

    ohne deine Delimiter ist dein Ausdruck keine Regex.
    Ein Delimiter kann modifier haben:
    //msiox (in Perl)
    ohne den modifier //s matcht der . auf alles ausser \n
    ditto in PHP

    Du suchst nach einem table Start Tag _BIS_ zum table endtag

    in Perl

    my $elementname = "table";

    input =~ /(<$elementname\s.*?/$elementname\s*>)/somefunc($1)/si;

    Achte dass ich die modifier //si verwende. Man weiss ja nie in welchem case gerade geschrieben wurde.
    ebenfalls habe ich den non greedy quantifier .*? verwendet

    Hier übergebe ich den in () gespeicherten Ausdruck einer subfunktion,
    die in der Lage ist, mit dem übergebenen String zu verfahren.

    Das Equivalent in Php lautet callback.

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische