La fonction preg_match() est une fonction intégrée de PHP qui effectue une correspondance d'expression régulière. Cette fonction recherche un modèle dans la chaîne et renvoie vrai si le modèle existe, sinon renvoie faux.
Généralement, la recherche commence au début du paramètre de chaîne $subject. Le paramètre facultatif $offset permet de lancer la recherche à partir de la position spécifiée.
Syntaxe
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
Remarque : $offset est un paramètre facultatif qui spécifie la position à partir de laquelle commencer la recherche.
Paramètres
Cette fonction accepte cinq paramètres, décrits ci-dessous :
modèle
Il s'agit d'un paramètre de type chaîne. Ce paramètre contient le modèle à rechercher sous forme de chaîne.
sujet
Ce paramètre contient la chaîne d'entrée dans laquelle nous recherchons un modèle.
allumettes
Si le paramètre matches est fourni, il contiendra les résultats de la recherche.
correspondances[0] - Il contiendra le texte correspondant au motif complet.
matchs[1] - Il contiendra le texte correspondant au premier sous-modèle entre parenthèses capturé, et ainsi de suite.
drapeaux
tableau dans les méthodes Java
Les drapeaux peuvent avoir les drapeaux suivants indiqués ci-dessous :
compenser
Par défaut, la recherche commence au début du paramètre $subject. Le paramètre offset permet de préciser l'endroit où débutera la recherche. C'est un paramètre facultatif.
Type de retour
La fonction preg_match() renvoie vrai si le modèle correspond, sinon elle renvoie faux.
Remarque : Si vous souhaitez uniquement vérifier si une chaîne est contenue dans une autre chaîne, n'utilisez pas la fonction preg_match(). Utilisez la fonction strpos() car elle sera plus rapide.
Exemples
<?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?>
Sortir:
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Nous pouvons voir le résultat ci-dessus comme indiqué ci-dessous pour mieux le comprendre.
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Exemples : recherche insensible à la casse
<?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Sortir:
Pattern matched in string. Array ( [0] => JTP )
Exemples : en utilisant la limite de mot ()
<?php /* The indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
Sortir:
A match was found. A match was not found.
Exemples : extraire le nom de domaine de l'URL
Sortir:
code de fibonacci java
Domain name is: javatpoint.com
Syntaxe Regex (expression régulière)
[abc] | Correspond à un seul caractère : a, b ou c |
[^abc] | Correspond à n'importe quel caractère sauf a, b ou c |
[a-z] | Correspond à n'importe quel caractère dans la plage a-z |
[a-zA-Z] | Tout caractère unique dans la plage a-z ou A-Z |
^ | Début de ligne |
$ | Fin de ligne |
UN | Début de chaîne |
Avec | Fin de chaîne |
. | N'importe quel personnage |
s | N'importe quel caractère d'espacement |
S | Tout caractère autre qu'un espace |
d | N'importe quel chiffre |
D | Tout autre chiffre |
Dans | N'importe quel caractère de mot (lettre, chiffre, trait de soulignement) |
DANS | Tout caractère autre qu'un mot |
Vérificateur de limites de mots | |
/?/ | Commence et termine l'expression régulière |
(?) | Capturez tout ce qui est entre parenthèses () |
(une|b) | a ou B |
un? | Zéro ou un d'un |
un* | Zéro ou plusieurs d'un |
un+ | Un ou plusieurs d'un |
un{3} | Exactement 3 d'un |
un{3,} | 3 ou plus d'un |
une{3,6} | Entre 3 et 6 heures |
je | Vérification insensible à la casse |
m | Faire correspondre les points aux nouvelles lignes |
X | Ignorer les espaces dans les expressions régulières |