telofon: PHP: Regulärer Ausdruck: Gefundene Werte in Variable

Beitrag lesen

Hallo

//suche nach "[" gefolgt von Zahlen, gefolgt von "=", gefolgt von irgendwelchen Zeichen bis zum nächsten Auftreten von "]".
$reg = "/[([0-9]+)=(.+?)]/";
if (preg_match($reg, $string, $matches)) {
    echo $matches[1] . "<br>";
    echo $matches[2];
}

Da war ich wohl ein bisschen vorschnell. An preg_match habe ich gar nicht gedacht, habe immer direkt mit preg_replace ersetzt.

Beispielsatz: "Gestern war ich in [1=Bremen] und habe meine [2=Tante] besucht..."

RegEx:

  
 preg_match_all("~\[([0-4])=([[:graph:]]+)\]~", $text, $matches);  
 print_r($matches);  

Ausgabe:
Array
(
    [0] => Array
        (
            [0] => [1=Bremen]
            [1] => [2=Tante]
        )

[1] => Array
        (
            [0] => 1
            [1] => 2
        )

[2] => Array
        (
            [0] => Bremen
            [1] => Tante
        )

)

Soweit sieht das doch ganz ordentlich aus. Für das Inhaltsverzeichnis muss PHP jetzt allerdings wissen, dass "Tante" ein Unterobjekt von "Bremen" ist. Wie könnte ich das bewerkstelligen?

Gruß
telofon