Maison >développement back-end >tutoriel php >Comment migrer mon code PHP des expressions régulières « ereg » vers « preg » ?

Comment migrer mon code PHP des expressions régulières « ereg » vers « preg » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-26 11:38:10199parcourir

How Do I Migrate My PHP Code from `ereg` to `preg` Regular Expressions?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn