Maison >développement back-end >tutoriel php >Comment puis-je convertir facilement mes expressions régulières PHP ereg en PCRE ?

Comment puis-je convertir facilement mes expressions régulières PHP ereg en PCRE ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-03 21:53:42691parcourir

How Can I Easily Convert My PHP ereg Regular Expressions to PCRE?

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!

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