Ich habe mehrere Funktionen ausprobiert, um was auch immer zwischen zwei Strings zu extrahieren. Die Delimiter könnten Sonderzeichen enthalten, ich denke, deshalb hat keiner für mich funktioniert.Der zuverlässigste Weg, Strings zwischen zwei Delimitern zu extrahieren
Meine aktuelle Funktion:
function between($str, $startTag, $endTag){
$delimiter = '#';
$regex = $delimiter . preg_quote($startTag, $delimiter)
. '(.*?)'
. preg_quote($endTag, $delimiter)
. $delimiter
. 's';
preg_match($regex, $str, $matches);
return $matches;
}
Beispiel string:
#{[email protected]}#
Text i want
#{END}#
#{[email protected]}#
Second text i want
#{END}#
Wie das verbessern oder eine andere Lösung vorschlagen zu:
- Unterstützung jeder Art von Charakter oder neue Linien
- Extrahieren Sie mehrere Zeichenfolgen, falls gefunden
Aktuelles Verhalten: gibt nur das erste Spiel und gibt auch das Spiel und die umliegenden Tags, die
unerwünscht ist