Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP zitierte Teilzeichenfolgen extrahieren und dabei maskierte Anführungszeichen ignorieren?
Escaped-Anführungszeichen in PHP-Regex ausschließen
In PHP erfordert das Extrahieren von Teilzeichenfolgen, die in einfache oder doppelte Anführungszeichen eingeschlossen sind, sorgfältige Beachtung der Escape-Sequenzen. Um maskierte Anführungszeichen innerhalb der übereinstimmenden Zeichenfolge zu ignorieren, können wir erweiterte reguläre Ausdrücke verwenden.
Bedenken Sie den folgenden Code:
$code = preg_replace_callback('/"(.*?)"/', array(&$this, '_getPHPString'), $code); $code = preg_replace_callback("#'(.*?)'#", array(&$this, '_getPHPString'), $code);
Diese regulären Ausdrücke gleichen Teilzeichenfolgen zwischen Anführungszeichen ab, schließen jedoch maskierte Anführungszeichen nicht aus . Um dieses Problem zu lösen, verwenden wir umfassendere Regex-Muster:
Empfohlene Regexes:
Double-Quoted Teilzeichenfolgen:
"[^"\\]*(?:\\.[^"\\]*)*"/s
Teilzeichenfolgen in einfachen Anführungszeichen:
/'[^'\\]*(?:\\.[^'\\]*)*'/s
Diese regulären Ausdrücke ermöglichen Folgendes alle nicht maskierten Zeichen, einschließlich maskierter Zeichen (z. B. „n“ und „t“), und Escape-Escape-Sequenzen ("").
Erklärung:
Durch die Einbindung dieser regulären Ausdrücke können Sie Teilzeichenfolgen, die Escape-Zeichen in Anführungszeichen enthalten, genau extrahieren .
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP zitierte Teilzeichenfolgen extrahieren und dabei maskierte Anführungszeichen ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!