Regex pour ignorer les guillemets échappés dans les guillemets en PHP
En PHP, il est souvent nécessaire d'analyser et de manipuler des chaînes contenant des guillemets échappés. Les expressions régulières existantes utilisées pour faire correspondre les chaînes entre guillemets simples et doubles ne peuvent pas ignorer les guillemets d'échappement, ce qui peut conduire à des résultats inattendus.
Solution :
Pour ignorer les guillemets d'échappement entre guillemets, nous pouvons utiliser les expressions régulières suivantes :
Double Citations :
$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s';
Citations simples :
$re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s";
Ces expressions rationnelles suivent les principes décrits par Jeffrey Friedl dans son livre "Mastering Regular Expressions". Ils permettent la correspondance des caractères d'échappement, y compris les guillemets.
Le code PHP recommandé pour remplacer les guillemets simples et doubles est :
$code = preg_replace_callback( $re_dq, array( &$this, '_getPHPString' ), $code ); $code = preg_replace_callback( $re_sq, array( &$this, '_getPHPString' ), $code );
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!