Maison  >  Article  >  développement back-end  >  Fonction d'expression régulière en PHP

Fonction d'expression régulière en PHP

小云云
小云云original
2018-03-26 14:05:012795parcourir

Il existe deux ensembles de bibliothèques de fonctions d'expressions régulières en PHP. Un ensemble est fourni par la bibliothèque PCRE (Perl Compatible Regular Expression), basée sur le NFA traditionnel. La bibliothèque PCRE implémente la correspondance de modèles d'expressions régulières en utilisant les mêmes règles de syntaxe que Perl, en utilisant des fonctions nommées avec le préfixe "preg_". L'autre ensemble est fourni par la bibliothèque d'extensions POSIX (Portable Operation System interface), basée sur POSIX NFA. Les expressions régulières étendues POSIX sont définies par POSIX 1003.2 et utilisent généralement des fonctions nommées avec le préfixe « ereg_ ».

Les fonctions des deux bibliothèques de fonctions sont similaires, mais l'efficacité d'exécution est légèrement différente. D'une manière générale, pour réaliser la même fonction, l'efficacité de l'utilisation de la bibliothèque PCRE est légèrement supérieure. Son utilisation est décrite en détail ci-dessous.

Correspondance d'expressions régulières

 1. preg_match()

Prototype de fonction : int preg_match (string pattern, stringpattern, stringcontent [, array $matches])

La fonction preg_match() recherche dans la chaîne de contenu et dans la chaîne de contenu Content qui correspond à l'expression régulière donnée par pattern. Si des correspondances sont fournies, les résultats correspondants y sont placés. correspondances, mettez-y les résultats correspondants. matches[0] contiendra le texte qui correspond à l'intégralité du modèle, $matches[1] contiendra la première correspondance capturée de l'élément de modèle entre parenthèses, et ainsi de suite. Cette fonction n'effectue qu'une seule correspondance et renvoie finalement le nombre de résultats correspondants de 0 ou 1.

2. ereg() et eregi()

ereg() est la fonction de correspondance d'expression régulière dans la bibliothèque d'extensions POSIX. eregi() est une version ignorant la casse de la fonction ereg(). Les deux ont des fonctions similaires à preg_match, mais la fonction renvoie une valeur booléenne indiquant si la correspondance a réussi ou non. Il convient de noter que le premier paramètre de la fonction de bibliothèque d'extension POSIX accepte une chaîne d'expression régulière, c'est-à-dire qu'aucun délimiteur n'est requis.

3. preg_grep()

Prototype de fonction : tableau preg_grep (modèle de chaîne, motif de tableau, tableau d'entrée)

La fonction preg_grep() renvoie un tableau, qui inclut le tableau d'entrée et le tableau d'entrée donné. correspondre au modèle donné. Preg_grep() effectue également uniquement une correspondance pour chaque élément du tableau d'entrée $input. L'exemple donné dans le listing 6.3 illustre simplement l'utilisation de la fonction preg_grep().

Effectuer une correspondance globale d'expressions régulières

 1. preg_match_all()

 Similaire à la fonction preg_match(). Si le troisième paramètre est utilisé, toutes les correspondances possibles seront introduites. Cette fonction renvoie le nombre de fois où le modèle entier correspond (éventuellement 0) et renvoie False si une erreur se produit.  

 2. Correspondance multiligne

Il est difficile d'effectuer des opérations de correspondance complexes uniquement en utilisant des fonctions de table normales sous POSIX. Par exemple, effectuez des recherches de correspondance sur des fichiers entiers (en particulier du texte multiligne). Une façon de procéder en utilisant ereg() consiste à le faire sur des lignes séparées.

Remplacement des expressions régulières

1. ereg_replace() et eregi_replace() 

Prototype de fonction : chaîne ereg_replace (string pattern, stringpattern, stringreplacement, string $string)

ereg_replace() recherche le motif de chaîne dans la chaîne et remplace le résultat correspondant avec remplacement. Lors du remplacement. Lorsque le motif contient des unités de motif (ou sous-motifs), les positions sous la forme de "1" ou "1" dans "remplacement" seront remplacées par le contenu correspondant à ces sous-motifs à leur tour.

Découpage des expressions régulières

 1. split() et spliti()

Prototype de fonction : array split (string pattern, stringpattern, stringstring [, int $limit])

Cette fonction renvoie un tableau de chaînes, chaque unité est String est une sous-chaîne divisée par la chaîne d'expression régulière et le modèle d'expression régulière comme limite. Si la limite est définie, le tableau renvoyé contient au plus la limite et le tableau renvoyé contient le plus d'unités limites. La dernière unité contient toutes les parties restantes de $string. spliti est la version de split qui ignore la taille.

 2. preg_split()

Cette fonction a la même fonction que la fonction split. '

Recommandations associées :

Explication détaillée des fonctions d'expression régulière couramment utilisées en PHP

Explication détaillée de la gestion des utilisateurs du système Linux et de grep expression régulière

Partage d'expressions régulières PHP

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