Maison >développement back-end >tutoriel php >Comment migrer mon code PHP des expressions régulières « ereg » vers « preg » ?
Migration de EReg vers PREG en PHP
Depuis PHP 5.3.0, les expressions régulières POSIX (ereg) sont obsolètes, nécessitant l'adoption d'expressions régulières compatibles Perl (preg). Cette transition nécessite des modifications des expressions ereg existantes pour assurer la compatibilité avec preg_match.
Différences de syntaxe
Le changement syntaxique clé implique l'ajout de délimiteurs aux expressions. Contrairement à ereg, preg nécessite des délimiteurs avant et après l'expression régulière. Les délimiteurs peuvent être des caractères comme ~, / ou #, ou même des parenthèses correspondantes (par exemple, [], (), {}).
preg_match('/^hello/', $str); // Using '/' as a delimiter preg_match('[^hello]', $str); // Using square brackets as a delimiter
Délimiteurs d'échappement
Si le délimiteur choisi apparaît dans l'expression régulière, échappez-le à l'aide d'une barre oblique inverse ().
preg_match('/^\/hello/', $str);
Utilisation de preg_quote
Pour un échappement complet de tous les délimiteurs et caractères réservés, utilisez preg_quote :
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Correspondance insensible à la casse
Pour effectuer correspondance insensible à la casse, utilisez le modificateur i :
preg_match('/^hello/i', $str);
Conversion de l'exemple donné
L'exemple fourni, eregi('^hello world'), ne devrait pas être converti en preg_match car il peut être simplifié à l'aide de la fonction stripos :
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!