Conversion d'expressions PCRE avec PHP
Les expressions régulières POSIX (ereg) ne sont plus recommandées dans PHP 5.3.0 et versions ultérieures. Cet article fournit un moyen simple de convertir d'anciennes expressions ereg en expressions régulières compatibles Perl (PCRE ou preg), qui sont toujours prises en charge.
Changements de syntaxe
La principale différence à noter est l'ajout de délimiteurs dans preg. Ils empêchent les collisions avec les caractères de l'expression. Les délimiteurs courants incluent ~, / et #.
Délimiteurs d'échappement
Si le délimiteur apparaît dans l'expression, il doit être échappé. Par exemple, une expression qui contient une barre oblique nécessite un échappement :
preg_match('/^\/hello/', $str);
Utilisation de preg_quote
Pour garantir que les caractères d'échappement sont correctement ajoutés, utilisez la fonction preg_quote. Il échappe à tous les délimiteurs et caractères réservés :
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Insensibilité à la casse
Le modificateur i fournit une correspondance insensible à la casse comme eregi :
preg_match('/^hello/i', 'HELLO');
Guide de référence
Pour une référence complète sur PCRE syntaxe en PHP, consultez le manuel officiel. De plus, le manuel comprend une ventilation des différences entre les expressions régulières POSIX et PCRE, facilitant le processus de conversion.
Alternative plus simple pour les expressions simples
Dans l'exemple fourni ( correspondant à « hello world » au début d'une chaîne), une expression régulière peut être inutile :
stripos($str, 'hello world') === 0
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!