PHP - Expressions régulières

Les expressions régulières ne sont rien de plus qu'une séquence ou un modèle de caractères lui-même. Ils fournissent la base de la fonctionnalité de correspondance de modèles.

En utilisant une expression régulière, vous pouvez rechercher une chaîne particulière dans une autre chaîne, vous pouvez remplacer une chaîne par une autre chaîne et vous pouvez diviser une chaîne en plusieurs morceaux.

PHP propose des fonctions spécifiques à deux ensembles de fonctions d'expressions régulières, chacune correspondant à un certain type d'expression régulière. Vous pouvez utiliser n'importe lequel d'entre eux en fonction de votre confort.

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

Expressions régulières POSIX

La structure d'une expression régulière POSIX n'est pas différente de celle d'une expression arithmétique typique: divers éléments (opérateurs) sont combinés pour former des expressions plus complexes.

L'expression régulière la plus simple est celle qui correspond à un seul caractère, tel que g, à l'intérieur de chaînes telles que g, haggle ou bag.

Expliquons quelques concepts utilisés dans l'expression régulière POSIX. Après cela, nous vous présenterons les fonctions liées aux expressions régulières.

Supports

Les crochets ([]) ont une signification particulière lorsqu'ils sont utilisés dans le contexte d'expressions régulières. Ils sont utilisés pour trouver une gamme de caractères.

Sr. Non Expression et description
1

[0-9]

Il correspond à n'importe quel chiffre décimal de 0 à 9.

2

[a-z]

Il correspond à n'importe quel caractère de a minuscule à z minuscule.

3

[A-Z]

Il correspond à n'importe quel caractère de la majuscule A à la majuscule Z.

4

[a-Z]

Il correspond à n'importe quel caractère de minuscules a à majuscules Z.

Les plages indiquées ci-dessus sont générales; vous pouvez également utiliser la plage [0-3] pour correspondre à tout chiffre décimal compris entre 0 et 3, ou la plage [bv] pour correspondre à tout caractère minuscule allant de b à v.

Quantificateurs

La fréquence ou la position des séquences de caractères entre crochets et des caractères uniques peut être indiquée par un caractère spécial. Chaque caractère spécial ayant une connotation spécifique. Les +, *,?, {Int. range} et $ flags suivent tous une séquence de caractères.

Sr. Non Expression et description
1

p+

Il correspond à toute chaîne contenant au moins un p.

2

p*

Il correspond à toute chaîne contenant zéro ou plus de p.

3

p?

Il correspond à toute chaîne contenant zéro ou un p.

4

p{N}

Il correspond à toute chaîne contenant une séquence de N p

5

p{2,3}

Il correspond à toute chaîne contenant une séquence de deux ou trois p.

6

p{2, }

Il correspond à toute chaîne contenant une séquence d'au moins deux p.

sept

p$

Il correspond à n'importe quelle chaîne avec p à la fin.

8

^p

Il correspond à n'importe quelle chaîne avec p au début.

Exemples

Les exemples suivants clarifieront vos concepts sur les caractères correspondants.

Sr. Non Expression et description
1

[^a-zA-Z]

Il correspond à toute chaîne ne contenant aucun des caractères allant de a à z et de A à Z.

2

p.p

Il correspond à toute chaîne contenant p, suivie de n'importe quel caractère, à son tour suivie d'un autre p.

3

^.{2}$

Il correspond à toute chaîne contenant exactement deux caractères.

4

<b>(.*)</b>

Il correspond à toute chaîne comprise entre <b> et </b>.

5

p(hp)*

Il correspond à toute chaîne contenant ap suivie de zéro ou plusieurs instances de la séquence php.

Plages de caractères prédéfinies

Pour faciliter la programmation, plusieurs plages de caractères prédéfinies, également appelées classes de caractères, sont disponibles. Les classes de caractères spécifient une plage entière de caractères, par exemple, l'alphabet ou un ensemble d'entiers -

Sr. Non Expression et description
1

[[:alpha:]]

Il correspond à toute chaîne contenant des caractères alphabétiques aA à zZ.

2

[[:digit:]]

Il correspond à toute chaîne contenant des chiffres numériques de 0 à 9.

3

[[:alnum:]]

Il correspond à toute chaîne contenant des caractères alphanumériques aA à zZ et 0 à 9.

4

[[:space:]]

Il correspond à toute chaîne contenant un espace.

Fonctions Regexp POSIX de PHP

PHP propose actuellement sept fonctions pour rechercher des chaînes à l'aide d'expressions régulières de style POSIX -

Sr. Non Description de la fonction
1 ereg ()

La fonction ereg () recherche une chaîne spécifiée par string pour une chaîne spécifiée par pattern, retournant true si le motif est trouvé et false dans le cas contraire.

2 ereg_replace ()

La fonction ereg_replace () recherche la chaîne spécifiée par pattern et remplace pattern par le remplacement si trouvé.

3 eregi ()

La fonction eregi () recherche dans une chaîne spécifiée par pattern une chaîne spécifiée par string. La recherche n'est pas sensible à la casse.

4 eregi_replace ()

La fonction eregi_replace () fonctionne exactement comme ereg_replace (), sauf que la recherche de motif dans string n'est pas sensible à la casse.

5 Divisé()

La fonction split () divisera une chaîne en divers éléments, les limites de chaque élément en fonction de l'occurrence du motif dans la chaîne.

6 spliti ()

La fonction spliti () fonctionne exactement de la même manière que son frère split (), sauf qu'elle n'est pas sensible à la casse.

sept sql_regcase ()

La fonction sql_regcase () peut être considérée comme une fonction utilitaire, convertissant chaque caractère de la chaîne de paramètres d'entrée en une expression entre crochets contenant deux caractères.

Expressions régulières de style PERL

Les expressions régulières de style Perl sont similaires à leurs équivalents POSIX. La syntaxe POSIX peut être utilisée presque de manière interchangeable avec les fonctions d'expression régulière de style Perl. En fait, vous pouvez utiliser n'importe lequel des quantificateurs présentés dans la section POSIX précédente.

Expliquons quelques concepts utilisés dans les expressions régulières PERL. Après cela, nous vous présenterons les fonctions liées aux expressions régulières.

Caractères méta

Un méta caractère est simplement un caractère alphabétique précédé d'une barre oblique inverse qui agit pour donner à la combinaison une signification particulière.

Par exemple, vous pouvez rechercher de grosses sommes d'argent en utilisant le méta-caractère '\ d': /([\d]+)000/, Ici \d recherchera n'importe quelle chaîne de caractères numériques.

Voici la liste des méta caractères qui peuvent être utilisés dans les expressions régulières de style PERL.

Character		Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified

Modificateurs

Plusieurs modificateurs sont disponibles qui peuvent rendre votre travail avec les expressions rationnelles beaucoup plus facile, comme la sensibilité à la casse, la recherche sur plusieurs lignes, etc.

Modifier	Description
i 	Makes the match case insensitive
m 	Specifies that if the string has newline or carriage
	return characters, the ^ and $ operators will now
	match against a newline boundary, instead of a
	string boundary
o 	Evaluates the expression only once
s 	Allows use of . to match a newline character
x 	Allows you to use white space in the expression for clarity
g 	Globally finds all matches
cg 	Allows a search to continue even after a global match fails

Fonctions compatibles PHP Regexp PERL

PHP propose les fonctions suivantes pour rechercher des chaînes à l'aide d'expressions régulières compatibles Perl -

Sr. Non Description de la fonction
1 preg_match ()

La fonction preg_match () recherche dans la chaîne le motif, retournant true si le motif existe et false dans le cas contraire.

2 preg_match_all ()

La fonction preg_match_all () correspond à toutes les occurrences de pattern dans la chaîne.

3 preg_replace ()

La fonction preg_replace () fonctionne exactement comme ereg_replace (), sauf que les expressions régulières peuvent être utilisées dans les paramètres d'entrée de modèle et de remplacement.

4 preg_split ()

La fonction preg_split () fonctionne exactement comme split (), sauf que les expressions régulières sont acceptées comme paramètres d'entrée pour pattern.

5 preg_grep ()

La fonction preg_grep () recherche tous les éléments de input_array, retournant tous les éléments correspondant au modèle regexp.

6 preg_ quote ()

Citer des caractères d'expression régulière