Regex zum Ignorieren von Escape-Anführungszeichen in PHP-Anführungszeichen
In PHP ist es häufig erforderlich, Zeichenfolgen zu analysieren und zu bearbeiten, die Escape-Anführungszeichen enthalten. Die vorhandenen regulären Ausdrücke, die zum Abgleichen von Zeichenfolgen in einfachen und doppelten Anführungszeichen verwendet werden, dürfen maskierte Anführungszeichen nicht ignorieren, was zu unerwarteten Ergebnissen führen kann.
Lösung:
So werden maskierte Anführungszeichen ignoriert Innerhalb von Anführungszeichen können wir die folgenden regulären Ausdrücke verwenden:
Double Anführungszeichen:
$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s';
Einzelne Anführungszeichen:
$re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s";
Diese regulären Ausdrücke folgen den Prinzipien, die Jeffrey Friedl in seinem Buch „Mastering Regular Expressions“ dargelegt hat. Sie ermöglichen den Abgleich von Escapezeichen, einschließlich Anführungszeichen.
Der empfohlene PHP-Code zum Ersetzen einfacher und doppelter Anführungszeichen ist:
$code = preg_replace_callback( $re_dq, array( &$this, '_getPHPString' ), $code ); $code = preg_replace_callback( $re_sq, array( &$this, '_getPHPString' ), $code );
Das obige ist der detaillierte Inhalt vonWie ignoriere ich maskierte Anführungszeichen in PHP Regex?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!