Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine Zeichenfolge in Wörter aufteilen und dabei zitierte Phrasen intakt halten?

Wie kann ich eine Zeichenfolge in Wörter aufteilen und dabei zitierte Phrasen intakt halten?

Linda Hamilton
Freigeben: 2024-12-12 16:20:09
Original
817 Leute haben es durchsucht

How Can I Split a String into Words While Keeping Quoted Phrases Intact?

Aufteilen von Zeichenfolgen unter Beibehaltung zitierter Phrasen

Die Aufgabe besteht darin, eine bestimmte Zeichenfolge in eine Reihe von Wörtern zu zerlegen, mit der eindeutigen Anforderung, dass zitiert wird Phrasen werden als einzelne Einheiten behandelt.

Um dies zu erreichen, besteht ein Ansatz darin, den Abgleich regulärer Ausdrücke zu verwenden. Ein geeignetes Muster, um sowohl zitierte Phrasen als auch einzelne Wörter zu erfassen, ist:

"(?:\.|[^\"])*"|\S+
Nach dem Login kopieren

Dieses Muster besteht aus zwei Teilen, die durch einen Alternationsoperator (|) getrennt sind:

  1. "(?: \.|[^\"])*": Dies entspricht einer in doppelte Anführungszeichen eingeschlossenen Zeichenfolge ("). Es berücksichtigt auch maskierte Anführungszeichen () innerhalb des zitierten Textes unter Verwendung der nicht erfassenden Gruppe 1.
  2. S: Dies entspricht einem oder mehreren Nicht-Leerzeichen, die einzelne Wörter darstellen.

Um dieses Muster in PHP zu verwenden, kann man preg_match_all(...) verwenden:

$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor';
preg_match_all('/"(?:\.|[^\"])*"|\S+/', $text, $matches);
Nach dem Login kopieren

Dadurch wird das $matches-Array mit einem gefüllt Array aller erfassten Übereinstimmungen, wobei zitierte Phrasen als einzelne Elemente isoliert werden.

Zum Beispiel mit der bereitgestellten Eingabezeichenfolge:

Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor
Nach dem Login kopieren

Die Ausgabe von preg_match_all(...) wird sein:

Array
(
    [0] => Array
        (
            [0] => Lorem
            [1] => ipsum
            [2] => "dolor sit amet"
            [3] => consectetur
            [4] => "adipiscing \"elit"
            [5] => dolor
        )
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich eine Zeichenfolge in Wörter aufteilen und dabei zitierte Phrasen intakt halten?. 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