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ésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Donné ci-dessous prend en charge 2 ensembles d'expressions régulières :
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 :
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. |
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. |
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. |
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 |
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. |
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. |
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.
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!