Wie kann ich mit Regex in einem Text eckige Klammern mit mehr als 3 Zeichen finden?

1 Antwort

Folgender Code:

$c = 'abc [a] def [de] ghi [ghi] jkl [jklm] mno';
preg_match_all('/\\[([^\\]]{3,})\\]/', $c, $m);
print_r($m);

... liefert diese Ausgabe:

Array (
[0] => Array (
[0] => [ghi]
[1] => [jklm]
)
[1] => Array (
[0] => ghi
[1] => jklm
)
)

Ich habe die Klammern etwas anders gesetzt, dass du direkt auf den Inhalt innerhalb der eckigen Klammern zugreifen kannst, ohne dass diese selbst im Ergebnis erscheinen. (Also die Matches in Gruppe "1"!) :)

Fantastisch! Sehr hilfreich sind natürlich auch die beiden Arrays - auch wenn es mir völlig rätselhaft ist, wie du das anstellst... :)
Muss mich jetzt mal ernsthaft mit dieser Funktion beschäftigen!

1