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+
Dieses Muster besteht aus zwei Teilen, die durch einen Alternationsoperator (|) getrennt sind:
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);
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
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 ) )
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!