Heim > Backend-Entwicklung > PHP-Tutorial > Wie extrahiere ich in eckigen Klammern eingeschlossenen Text mit regulären PHP-Ausdrücken?

Wie extrahiere ich in eckigen Klammern eingeschlossenen Text mit regulären PHP-Ausdrücken?

Mary-Kate Olsen
Freigeben: 2024-11-28 15:57:10
Original
1032 Leute haben es durchsucht

How to Extract Text Enclosed in Square Brackets Using PHP Regular Expressions?

Extrahieren von Text in eckigen Klammern in PHP

Die Herausforderung, Text in eckigen Klammern in PHP zu erfassen, erfordert einen differenzierten Ansatz. Ein üblicher Versuch, /[.*?]/ als regulären Ausdruck zu verwenden, ruft nur die erste Instanz ab und führt zu einem unvollständigen Ergebnis.

Erfassen des Gehäuses:

Um diese Einschränkung zu umgehen, verwenden Sie reguläre Ausdrücke, die den gesamten Text in eckigen Klammern umfassen. Betrachten Sie das Muster:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);
Nach dem Login kopieren

Hier fungiert /[1]/ als regulärer Ausdruck, der jeder in eckigen Klammern eingeschlossenen Zeichenfolge entspricht. Das Caret-Zeichen (^) entspricht dem Anfang der Zeichenfolge, gefolgt von einer Klammer. Der Teil 2 bezeichnet ein Zeichen, das keine Klammer ist. Das Sternchen () stimmt mit einer beliebigen Anzahl von Vorkommen überein und die abschließende Klammer schließt das Muster ab.

Das Ausführen dieses regulären Ausdrucks auf den bereitgestellten Text führt zu Folgendem:

Array (
     [0] => [This]
     [1] => [test]
     [2] => [eat]
     [3] => [shorts]
)
Nach dem Login kopieren

Den darin enthaltenen Text erfassen:

Alternativ möchten Sie möglicherweise den Text ohne Klammern extrahieren. Dies erfordert eine modifizierte Regex:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);
Nach dem Login kopieren

In dieser Regex erfasst (3*) jedes Zeichen in eckigen Klammern, wodurch die Klammern effektiv aus der Ausgabe entfernt werden. Sie erhalten:

Array (
     [0] => This
     [1] => test
     [2] => eat
     [3] => shorts
)
Nach dem Login kopieren

Denken Sie daran, dass dieser reguläre Ausdruck davon ausgeht, dass eckige Klammern nicht im Text verschachtelt sind.


  1. ]
  2. ]
  3. ]

Das obige ist der detaillierte Inhalt vonWie extrahiere ich in eckigen Klammern eingeschlossenen Text mit regulären PHP-Ausdrücken?. 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