Expressions régulières PHP – PHPGurukul

Posted on


Dans ce didacticiel, nous aborderons les expressions régulières dans PHP et comment un programmeur peut les appliquer dans la mise en correspondance de modèles.

Qu’est-ce que l’expression régulière?

Ils sont communément appelés «regex» ou «RegExp». Généralement, ce sont des chaînes de texte au format unique que l’on peut utiliser pour déterminer les modèles dans un texte. Les expressions régulières sont très utiles lorsqu’il s’agit de traiter du texte et de manipuler du texte. Par exemple, une personne peut l’utiliser pour déterminer si le format de données tel que le nom, le numéro de téléphone et l’e-mail tapé par l’utilisateur est correct ou non, rechercher ou remplacer une chaîne correspondante dans le contenu texte, et bien d’autres.

Le tableau ci-dessous montre certaines des fonctions de correspondance de motifs PHP les plus courantes.

Une fonction Ce qu’il fait
preg_macth () Effectuez une correspondance d’expression régulière.
preg_match_all () Effectuez une correspondance d’expression régulière globale.
preg_replace () Effectuez une recherche d’expression régulière et remplacez.
preg_grep () Renvoie les éléments du tableau d’entrées qui correspondent au modèle.
preg_split () Divise une chaîne en sous-chaîne à l’aide d’une expression régulière.
preg_quote () Citez les caractères d’expression régulière trouvés dans une chaîne.

La fonction PHP preg_match () arrêtera la recherche une fois qu’elle aura trouvé la première correspondance. D’un autre côté, la fonction preg_match_all () continuera à rechercher jusqu’à ce qu’elle atteigne la fin de la chaîne et identifie toutes les correspondances possibles au lieu de s’arrêter à la première correspondance.

La syntaxe d’une expression régulière

La syntaxe d’une expression régulière a des caractères spéciaux. Les types spécifiques de caractères qui ont une signification unique dans une expression régulière incluent: . *? + [] () {} ^ $ | .

Cependant, avant de pouvoir utiliser ces caractères, vous devez les inverser. Par exemple, si vous voulez faire correspondre « . », Vous devrez écrire . Les autres personnages restants prennent automatiquement leur sens littéral.

Classes de personnages

Les crochets qui entourent un motif de caractères sont appelés classe de caractères. Une classe de caractères correspondra à un seul caractère d’une liste de caractères uniques.

Des classes de caractères négatives peuvent également être générées qui correspondent à n’importe quel type de caractère, à l’exception de celles qui sont à l’intérieur des crochets. Pour définir une classe de caractères inversée, le symbole caret doit suivre immédiatement la parenthèse ouvrante. Exemple,[^abc].

Néanmoins, il est possible de définir une plage de caractères en plaçant le caractère hypen (-) à l’intérieur d’un caractère tel que [0-9]. Voici des exemples de classes de caractères.

RegExp Ce qu’il fait
[abc] Correspond à l’un des caractères a, b ou c.
[^abc] Correspond à n’importe quel caractère autre que a, b, c.
[a-z] Correspond à n’importe quel caractère de minuscule a à minuscule z.
[A-Z] Correspond à n’importe quel caractère de majuscule a à majuscule z.
[a-Z] Correspond à n’importe quel caractère de Z minuscule à Z majuscule.
[0-9] Correspond à un seul chiffre entre 0 et 9.
[a-z0-9] Correspond à un seul caractère entre a et z ou entre 0 et 9.

L’exemple ci-dessous montre comment déterminer si un modèle est présent dans une chaîne ou non en utilisant des expressions régulières et la fonction PHP preg_match ().


En même temps, toutes les correspondances dans une chaîne peuvent être identifiées en appliquant la fonction preg_match_all ():


Classes de caractères prédéfinies

Certaines classes de caractères telles que les espaces blancs, les lettres et les chiffres sont souvent utilisées. En conséquence, ils ont des noms de raccourcis définis pour eux. Le tableau ci-dessous répertorie certaines des classes de caractères prédéfinies:

Raccourci Une fonction
. Il correspond à un seul caractère à l'exception d'une seule nouvelle ligne n
Il correspond à n'importe quel caractère numérique. Semblable à [0-9]
Il correspond à tout caractère non numérique. Semblable à [^0-9]
s Il correspond au caractère d'espacement. Semblable à [ tnr]
w Il correspondra à n'importe quel caractère de mot et trait de soulignement. Semblable à [a-zA-Z_0-9]
W Il correspondra à tout caractère autre qu'un mot. Semblable à [^a-zA-Z_0-9]

L'exemple ci-dessous montre comment rechercher et remplacer de l'espace à l'aide d'un trait d'union dans une chaîne en appliquant une expression régulière et la fonction PHP preg_replace ().

";
// Replace  only spaces
 echo str_replace (" ","-", $text);

Quantificateurs de répétition

Les quantificateurs décrivent le nombre de fois qu'un caractère dans une expression régulière doit correspondre. Le tableau ci-dessous montre plusieurs façons de quantifier un modèle spécifique.

RegExp Ce qu'il fait
p + Correspond à une ou plusieurs occurrences de la lettre p.
p * Correspond à zéro ou plusieurs occurrences de la lettre p.
p? Correspond à zéro ou plusieurs occurrences de la lettre p.
p {2} Correspond exactement à deux occurrences de la lettre p.
p {2,3} Correspond à au moins deux occurrences de la lettre p, mais pas plus de trois occurrences de la lettre p.
p {2,} Correspond à deux occurrences ou plus de la lettre p.
p {, 3} Correspond à au plus trois occurrences de la lettre p.

L'expression régulière utilisée dans l'exemple ci-dessous divise la chaîne au niveau d'une virgule, d'une série de virgules et d'une combinaison appliquant la fonction PHP preg_split ().

"
}

Ancrages de position

Il y a des cas spécifiques que vous voudrez peut-être faire correspondre au début ou à la fin d'une ligne, d'une chaîne ou d'un mot. Pour ce faire, vous pouvez appliquer des ancres. Deux ancres communes incluent le signe d'insertion (^) qui signale le début d'une chaîne et un signe $ qui représente la fin d'une chaîne.

RegExp Une fonction
^ p Il correspondra à la lettre p au début d'une ligne.
p $ Il correspondra à la lettre p à la fin d'une ligne.

L'expression régulière appliquée dans l'exemple suivant affiche uniquement les noms du tableau de noms qui commence par la lettre «j» et la fonction preg_group ().

"
}

Modificateurs de modèle

Un modificateur de modèle permettra à un développeur de répondre à une correspondance de modèle. Les modificateurs de modèle apparaissent directement après l'expression régulière. Par exemple, si vous souhaitez rechercher un modèle de manière insensible à la casse, vous devez utiliser la modification I telle que / pattern / I. Le tableau ci-dessous présente certains des modificateurs de modèle les plus couramment utilisés.

Modificateur Qu'est-ce que
je Rend la correspondance insensible à la casse.
m Modifie le comportement de ^ et $ pour correspondre à une limite de nouvelle ligne (c'est-à-dire le début ou la fin de chaque ligne dans une chaîne multiligne), au lieu d'une limite de chaîne.
g Effectuez une correspondance globale, c'est-à-dire trouve toutes les occurrences.
o Évalue l'expression une seule fois.
s Modifie le comportement de. (point) pour faire correspondre tous les caractères, y compris les retours à la ligne.
X Vous permet d'utiliser des espaces et des commentaires dans une expression régulière pour plus de clarté.

L'exemple ci-dessous montre comment effectuer une recherche globale insensible à la casse en appliquant le modificateur i et la fonction PHP preg_match_all ().

Modificateur Qu'est-ce que
je Rend la correspondance insensible à la casse.
m Modifie le comportement de ^ et $ pour correspondre à une limite de nouvelle ligne (c'est-à-dire le début ou la fin de chaque ligne dans une chaîne multiligne), au lieu d'une limite de chaîne.
g Effectuez une correspondance globale, c'est-à-dire trouve toutes les occurrences.
o Évalue l'expression une seule fois.
s Modifie le comportement de. (point) pour faire correspondre tous les caractères, y compris les retours à la ligne.
X Vous permet d'utiliser des espaces et des commentaires dans une expression régulière pour plus de clarté.

Limites des mots

Un caractère de délimitation de mot ( b) vous aidera à identifier les mots qui commencent et se terminent par un motif. Par exemple, l'expression rationnelle / bcar / correspond aux mots qui commencent par un modèle de voiture et correspondent à un dessin animé, une carotte, un chariot mais ne peuvent pas correspondre à Oscar.

De la même manière, l'expression rationnelle / car b / correspond aux mots qui se terminent par le modèle car et correspondent à scar, supercar, Oscar mais ne peuvent pas correspondre à cart. De même, / bcar b correspond aux mots qui commencent et se terminent par le motif car et qui ne correspondront qu'au mot car. L'exemple montrera les mots commençant par la voiture en gras:

$0';
$text='Words beginning with car: cart, carrot, cartoon
words ending with car: scar, oscar, supercar';
echo preg_replace ($pattern, $replacement, $text);

Tutoriels recommandés pour vous




Telecharger ici

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *