Exclusion des guillemets échappés dans PHP Regex
En PHP, l'extraction de sous-chaînes entourées de guillemets simples ou doubles nécessite une attention particulière aux séquences d'échappement. Pour ignorer les guillemets échappés dans la chaîne correspondante, nous pouvons utiliser des expressions régulières avancées.
Considérez le code suivant :
$code = preg_replace_callback('/"(.*?)"/', array(&$this, '_getPHPString'), $code); $code = preg_replace_callback("#'(.*?)'#", array(&$this, '_getPHPString'), $code);
Ces expressions régulières correspondent aux sous-chaînes entre les guillemets, mais elles ne parviennent pas à exclure les guillemets échappés. . Pour résoudre ce problème, nous utilisons des modèles d'expressions régulières plus complets :
Regex recommandées :
Citations doubles Sous-chaînes :
"[^"\\]*(?:\\.[^"\\]*)*"/s
Sous-chaînes entre guillemets simples :
/'[^'\\]*(?:\\.[^'\\]*)*'/s
Ces expressions régulières permettent tout caractère non échappé, y compris les caractères échappés (par exemple, "n" et "t"), et séquences d'échappement ("").
Explication :
En incorporant ces expressions rationnelles, vous pouvez extraire avec précision les sous-chaînes qui incluent des caractères d'échappement dans les chaînes entre guillemets. .
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!