Conversion des expressions régulières ereg en preg en PHP
Comme PHP 5.3.0 rend obsolète les expressions régulières POSIX (ereg), la conversion des anciennes expressions ereg en PCRE (Perl Compatible Regular Expressions) (preg) devient indispensable. Cet article fournit un guide simplifié pour faciliter cette transition.
Contrairement à ereg, preg nécessite des délimiteurs aux deux extrémités de l'expression régulière. Les délimiteurs couramment utilisés incluent ~, / et #. Par exemple, l'expression ereg "^hello world" peut être convertie en preg_match("/^hello world/") en la plaçant entre des barres obliques.
Les parenthèses correspondantes peuvent également servir de délimiteurs, permettant des variations telles que 1, (^bonjour) et {^bonjour}. Cependant, les délimiteurs inclus dans l'expression doivent être échappés à l'aide d'une barre oblique inverse. Exemple : ereg("^/hello", $str) devient preg_match('/^/hello/', $str).
la fonction preg_quote s'avère utile pour échapper aux délimiteurs et aux caractères réservés dans une chaîne. Exemple : $expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str).
PCRE prend en charge des modificateurs comme i (insensible à la casse), équivalent à eregi. Exemple : eregi('^hello', 'HELLO') peut être remplacé par preg_match('/^hello/i', 'HELLO').
Pour des références détaillées sur la syntaxe PCRE et des conseils de conversion ereg-PCRE, consultez le manuel PHP.
Dans certains cas, les expressions régulières peuvent ne pas être nécessaires. Pour l'exemple fourni (eregi('^hello world')), une comparaison simplifiée utilisant stripos($str, 'hello world') === 0 peut suffire.
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!