Heim > Backend-Entwicklung > PHP-Tutorial > Wie extrahiere ich mit PHP mehrere in eckige Klammern eingeschlossene Textsegmente?

Wie extrahiere ich mit PHP mehrere in eckige Klammern eingeschlossene Textsegmente?

Susan Sarandon
Freigeben: 2024-12-05 07:10:14
Original
982 Leute haben es durchsucht

How to Extract Multiple Text Segments Enclosed in Square Brackets using PHP?

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:

/\[[^\]]*\]/
Nach dem Login kopieren

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]);
Nach dem Login kopieren

Dieser Code erzeugt die folgende Ausgabe:

array(4) {
  [0] =>
  string(5) "[This]"
  [1] =>
  string(5) "[test]"
  [2] =>
  string(5) "[eat]"
  [3] =>
  string(7) "[shorts]"
}
Nach dem Login kopieren

Alternative zum Extrahieren von Text ohne Klammern:

Um nur den Text in den eckigen Klammern zu extrahieren, verwenden Sie Folgendes Regex:

/\[([^\]]*)\]/
Nach dem Login kopieren

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]);
Nach dem Login kopieren

Dieser Code erzeugt die folgende Ausgabe:

array(4) {
  [0] =>
  string(4) "This"
  [1] =>
  string(4) "test"
  [2] =>
  string(3) "eat"
  [3] =>
  string(6) "shorts"
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage