Conversion d'Ereg vers Preg en PHP
En PHP, les expressions régulières POSIX (ereg) sont obsolètes depuis la version 5.3.0. Pour faciliter la transition, il est essentiel de comprendre comment convertir les anciennes expressions ereg en PCRE (Perl Compatible Regular Expressions) (preg).
Différences de syntaxe
La syntaxe principale la différence est l'ajout de délimiteurs dans preg. Par exemple, l'expression ereg suivante :
eregi('^hello world');
doit être convertie en une expression preg_match comme celle-ci :
preg_match('/^hello world/', $str);
Les délimiteurs peuvent être divers caractères non alphanumériques, les choix courants étant ~, / et #.
Correspondance Crochets
De plus, vous pouvez utiliser des crochets correspondants comme délimiteurs :
preg_match('[^hello]', $str); preg_match('(^hello)', $str); preg_match('{^hello}', $str);
Délimiteurs d'échappement
Si votre délimiteur apparaît dans le format normal expression, échappez-la à l'aide d'une barre oblique inverse :
eregi('^/hello', $str); preg_match('/^\/hello/', $str);
Pour échapper à tous les délimiteurs et les caractères réservés, utilisez preg_quote :
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Modificateurs
PCRE prend en charge les modificateurs pour diverses fonctionnalités. Par exemple, le modificateur insensible à la casse i remplace la fonction eregi :
eregi('^hello', 'HELLO'); preg_match('/^hello/i', 'HELLO');
Exemple de conversion
Dans l'exemple fourni, une expression régulière n'est pas nécessaire. À la place, vous pouvez utiliser la fonction PHP suivante :
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!