Tom: Regular Expressions

Beitrag lesen

Hello,

in einem längeren Text befindet sich eine Startsignatur mehrfach und die Abschlusssignatur des gesuchten Bereiches nur einmal.

xxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxSTARTxxxxxxxxxxxxxxx
    xxxSTARTxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxSTARTsssssssssss
    sssssssss
    ssssssssssssssSTOPxxxxxxx
    xxxxxxxxxxxxxxxxxx
    STARTxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxx

sss wird gesucht.

Wie muss ich das machen, dass ich nur den Bereich vom letzten Vorkommen von START vor STOP bis STOP bekomme?

Ich habe jetzt diverse Versuche mit Greedyness, Assertions usw. durch und komme auf keinen Lösungsweg.

Dabei kann ich die Positionen eindeutig identifiziern, könnte es also mit "Drumherumprogrammierung" auch lösen.

$_total_matches = array();
$offset = 0;
while (preg_match($pattern1, $content, $_matches, PREG_OFFSET_CAPTURE, $offset))
{
    $_lastmatch = end($_matches);
    $offset = $_lastmatch[1] + strlen($_lastmatch[0]);
    $_total_matches[] = $_lastmatch;
}

Ich würde nur gerne wissen, ob man für diesen Fall nicht doch eine Regular Expression finden kann.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de