Maison  >  Article  >  développement back-end  >  Expressions régulières PHP

Expressions régulières PHP

PHPz
PHPzoriginal
2024-08-29 13:01:52552parcourir

L'expression régulière peut être définie comme un algorithme de correspondance de modèles généré sur une seule ligne. Ceux-ci ont un impact en cas de contrôle de validation et pour la reconnaissance de modèles. Les méta-caractères permettent à l'utilisateur de gérer des modèles complexes. Ainsi, la prise en charge en PHP des expressions régulières contribue à améliorer la qualité du code d'une programmation PHP. Toute expression régulière est un modèle générique ou une séquence d'un ensemble de caractères utilisé pour fournir une fonctionnalité de correspondance de modèles par rapport à une chaîne d'objet donnée. Il est également connu sous le nom de RegExp ou RegEx. Il est également considéré comme un petit langage de programmation basé sur la notation de modèles à utiliser pour l'analyse de chaînes de texte.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

2 ensembles d'expressions régulières dans les fonctions PHP

Donné ci-dessous prend en charge 2 ensembles d'expressions régulières :

  • Expressions régulières POSIX
  • Expressions régulières de style PERL

1. Expressions régulières POSIX

Ceci est défini comme un ensemble de caractères où l'un de ses caractères doit correspondre à la chaîne d'entrée. Ces expressions sont définies entre [].

Exemple :

  • [0-9] : Ceci est conçu pour filtrer toute chaîne décimale de 0 à 9.
  • [a-Z] : Ceci est conçu pour filtrer n'importe quel caractère, du « a » minuscule au « Z » majuscule.

Afin de rendre le filtre plus spécifique, une syntaxe standard, comprenant des expressions régulières et des caractères spéciaux, connue sous le nom de quantificateurs, est développée. Il fournit également des informations sur la fréquence, c'est-à-dire le nombre d'occurrences ou d'instances de caractères entre crochets ou d'un groupe de caractères et la quantité.

Tableau pour connaître les descriptions des différents quantificateurs :

Quantifier Description
S+ Filters out a string having at least one ‘s’.
S* Filters out a string having zero or more ‘s’.
S? Filters out a string having zero or one ‘s’.
S{N} Filters out a string having a sequence of N ‘s’.
S$ Filters out a string having ‘s’ at the end.
^S Filters out a string having ‘s’ at the beginning.
Quantificateur

Description

S+ Filtre une chaîne ayant au moins un « s ». S* Filtre une chaîne contenant zéro ou plusieurs « s ». S? Filtre une chaîne ayant zéro ou un « s ». S{N} Filtre une chaîne ayant une séquence de N 's'. S$ Filtre une chaîne ayant un « s » à la fin. ^S Filtre une chaîne ayant un « s » au début. PHP prend également en charge la fonctionnalité de correspondance par rapport aux plages/classes de caractères prédéfinies.
predefined character class Description
[[:space:]] Filters out a string having a space.
[[:alpha:]] Filters out a string having alphabetic characters a-A through z-Z.
[[:digit:]] Filters out a string having numerical 0 to 9.
[[:alnum:]] Filters out a string having alphanumeric characters a-A through z-Z and numerical 0 to 9.
Exemple : classe de caractères prédéfinie Description [[:space:]] Filtre une chaîne comportant un espace. [[:alpha:]] Filtre une chaîne contenant des caractères alphabétiques de a-A à z-Z. [[:digit:]] Filtre une chaîne comportant des valeurs numériques de 0 à 9. [[:alnum:]] Filtre une chaîne contenant des caractères alphanumériques de a-A à z-Z et des chiffres de 0 à 9.

Pour l'expression régulière POSIX, PHP intègre diverses fonctions pour effectuer diverses opérations à l'aide d'expressions régulières de style POSIX.

Les fonctions sont décrites comme indiqué dans le tableau ci-dessous :

POSIX Regex function Description
ereg() Used to search a string specified by or by pattern and to return true if the matching is found.
ereg_replace() Used to search a string specified by or by pattern and replace with replacement if the matching is found.
eregi() Used to perform non-case sensitive search for a string specified by or by pattern and to return true if the matching is found.
eregi_replace() Used to perform non-case sensitive for a string specified by or by pattern and replace with replacement if the matching is found.
split() Used to divide the string into separate elements based on boundaries that matches the searching pattern.
spliti() Used to perform non-case sensitive for the string to divide it into separate elements based on boundaries that matches the searching pattern.
sql_regcase() A utility function that convert each character from the input value into a bracketed expression making two characters.

2. Expressions régulières de style PERL

Ce type de modèles Regex similaires aux regex POSIX mais créés avec des méta-caractères et des identifiants. La syntaxe de ces expressions régulières est interchangeable avec le style POSIX.

a. Caractères méta : Un caractère alphabétique précédé d'une barre oblique inverse représentant une signification spécifique est appelé caractère méta.

Il existe différents métacaractères pris en charge dans les scripts PHP, utilisés comme Regex de type Perl comme indiqué ci-dessous :

Meta character Description
. Single character
d A digit character
D Non-digit character
s white space character e.g. SPACE, NEW LINE, TAB
S Non- white space character
w A word character
W Non-word character
[aeiou] Filters the matched character out of the given set
[^aeiou] Filters the unmatched character out of the given set
(set1|set2|set3) Filters the matched element that matches to any of the given alternatives
Méta-caractère

Description . Caractère unique d Un caractère numérique D Caractère autre qu'un chiffre s caractère d'espacement blanc, par ex. ESPACE, NOUVELLE LIGNE, TAB S Caractère d'espace non blanc w Un caractère de mot W Caractère autre qu'un mot [aeiou] Filtre le caractère correspondant hors de l'ensemble donné [^aeiou] Filtre le caractère sans correspondance hors de l'ensemble donné (set1|set2|set3) Filtre l'élément correspondant à l'une des alternatives données

b. Modificateurs :

Ces éléments permettent à l'utilisateur de bénéficier d'une flexibilité supplémentaire pour travailler avec les expressions rationnelles.
Modifier Description
g Finds matchings globally.
cg Enable continue global search even after matching fails.
i Instructs to perform case insensitive search.
s Use the character ‘.’ to search for new line character.
m In case of input string containing new line or carriage return character, ‘^’ and ‘$’ are used to match for new line boundary.
x Permits to use white space to improve the clarity of the expression.
o Restrict the evaluation of the expression to occur only once.
Divers modificateurs et leurs fonctionnalités sont mentionnés dans le tableau ci-dessous : Modificateur Description g Trouve des correspondances globalement. cg Activer la poursuite de la recherche globale même après l'échec de la correspondance. i Instruit pour effectuer une recherche insensible à la casse. s Utilisez le caractère « . » pour rechercher un caractère de nouvelle ligne. m Dans le cas d'une chaîne d'entrée contenant une nouvelle ligne ou un caractère de retour chariot, '^' et '$' sont utilisés pour correspondre à la nouvelle limite de ligne. x Permet d'utiliser des espaces blancs pour améliorer la clarté de l'expression. o Limiter l'évaluation de l'expression à une seule fois.

Semblable à la fonction regex POSIX, PHP propose également des fonctions spécifiques compatibles avec les regex de style PERL.

Certaines des fonctions principales sont décrites ci-dessous :

PERL style regexpcompitable function Description
preg_match() Return the first occurrence of the matching pattern.
preg_match_all() Return all occurrences of the matching pattern.
preg_split() Splits the string input into several elements based on the given regexp pattern as input.
Preg_quote() Used to quote the characters of the regex.
preg_grep() Used to find all the matching elements from array input.
preg_replace() Used to find matching element and replace it with the given replacement.

Exemple d'expressions régulières PHP

L'exemple ci-dessous montre l'application

L'extrait de code est conçu pour parcourir la chaîne d'entrée et diviser l'entrée donnée en plusieurs éléments en définissant la Regex donnée comme limite.

Code :

<?php
// Declaring a regex
$regex = "([0-9]+)";
// Defining the input string
$inputstr = "String_a 1 String_b 2 String_c 3";
//Splitting the input string based on matching regex expression
$result = preg_split ($regex, $inputstr);
// Displaying result
echo $result[0];
echo "\n";
echo $result[1];
echo "\n";
echo $result[2];
echo "\n";
?>

Sortie

La fonction preg_split() a divisé la chaîne d'entrée en 3 parties car les éléments « 1 », « 2 et « 3 » sont marqués comme limites.

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
Article précédent:Constantes magiques PHPArticle suivant:Constantes magiques PHP