Erfassen mehrerer Textsegmente zwischen eckigen Klammern in PHP
Frage:
So erfassen Sie alle in eckigen Klammern eingeschlossenen Textsegmente in einem gegebenen Text string?
Antwort:
Um mehrere Textsegmente zwischen eckigen Klammern zu erfassen, verwenden Sie den folgenden regulären Ausdruck:
/\[[^\]]*\]/
Dieser reguläre Ausdruck entspricht jedem Zeichenfolge, die mit einer eckigen Klammer beginnt, eine beliebige Anzahl nicht in eckiger Klammern stehender Zeichen enthält und mit einer eckigen Klammer endet.
Zum Extrahieren der erfassten Daten Segmente verwenden Sie die Funktion preg_match_all(). Diese Funktion verwendet das Regex-Muster und die Zielzeichenfolge als Eingabe und gibt ein Array zurück, das alle Übereinstimmungen enthält. Der folgende PHP-Code zeigt, wie man mit diesem regulären Ausdruck mehrere Textsegmente erfasst:
$text = '[This] is a [test] string, [eat] my [shorts].'; preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
Dieser Code erzeugt die folgende Ausgabe:
array(4) { [0] => string(5) "[This]" [1] => string(5) "[test]" [2] => string(5) "[eat]" [3] => string(7) "[shorts]" }
Alternative zum Extrahieren von Text ohne Klammern:
Um nur den Text in den eckigen Klammern zu extrahieren, verwenden Sie Folgendes Regex:
/\[([^\]]*)\]/
Diese Regex entspricht jeder Zeichenfolge, die mit einer eckigen Klammer beginnt, eine beliebige Anzahl von Zeichen enthält, die keine eckigen Klammern sind, und mit einer eckigen Klammer endet. Die Zeichen innerhalb der Klammern werden mithilfe von Klammern gruppiert.
Um die erfassten Segmente ohne die eckigen Klammern zu extrahieren, verwenden Sie die 1. Erfassungsgruppe, wie im folgenden PHP-Code gezeigt:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
Dieser Code erzeugt die folgende Ausgabe:
array(4) { [0] => string(4) "This" [1] => string(4) "test" [2] => string(3) "eat" [3] => string(6) "shorts" }
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit PHP mehrere in eckige Klammern eingeschlossene Textsegmente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!