php

Utilisation de la fonction preg_match() en PHP

Utilisation de la fonction preg_match() en PHP

L'expression régulière est un modèle particulier qui peut être utilisé pour faire correspondre, rechercher et remplacer n'importe quelle chaîne particulière dans les données de texte. C'est une fonctionnalité puissante de tout langage de programmation. Il est principalement utilisé pour effectuer différents types de validations de formulaires, telles que la validation des e-mails, la vérification du format du téléphone, la validation des champs nom d'utilisateur et mot de passe du formulaire de connexion, etc. Tout contenu particulier du texte peut être recherché et remplacé à l'aide d'un modèle d'expression régulière. Il est aussi appelé regex ou RegExp. Différents types de symboles sont utilisés pour définir le modèle regex.

De nombreuses fonctions intégrées existent en PHP pour l'expression régulière. La fonction preg_match() est l'une d'entre elles. Cette fonction est utilisée pour faire correspondre un modèle particulier dans les données de chaîne. Comment la fonction preg_match() peut être utilisée en PHP pour effectuer diverses tâches est expliquée dans ce tutoriel.

Syntaxe:

Int ou false preg_match (string $pattern, string $subject [, array &$matches = null [, int $flags = 0 [, int $offset = 0]]])

Cette fonction peut prendre cinq arguments. Le premier argument, $motif, est obligatoire, ce qui définit le modèle de correspondance. Le deuxième argument, $sujet, est obligatoire et contient les données de chaîne dans lesquelles le motif sera appliqué. Le troisième argument, $correspondance, est facultatif et renvoie un tableau basé sur la correspondance. Le quatrième argument, $drapeaux, est facultatif, qui contient différents types de valeurs d'indicateur en fonction de la correspondance. Le cinquième argument, $compensation, est facultatif et peut être utilisé pour définir la position de départ de la recherche.

Exemple 1 : Faites correspondre le modèle de manière sensible à la casse et insensible à la casse

L'exemple suivant montre l'utilisation de la fonction preg_match() pour faire correspondre la chaîne de manière sensible à la casse et insensible à la casse. Créez un fichier PHP avec le script suivant.

Ici, trois modèles sont utilisés pour l'application dans trois fonctions preg_match(). Le premier motif, '/Comme/', est utilisé pour faire correspondre la chaîne d'une manière sensible à la casse. Le deuxième motif, '/aimer/', est utilisé pour faire correspondre la chaîne d'une manière sensible à la casse. Le troisième modèle, 'Comme je', est utilisé pour faire correspondre la chaîne d'une manière insensible à la casse. search_pattern() la fonction est définie dans le script pour utiliser la fonction preg_match() pour la correspondance, et elle imprime le message en fonction de la valeur renvoyée de cette fonction.

//Définir le texte
$text = "J'aime PHP. j'aime aussi JavaScript.";
//Définir trois types de motif
$pattern1 = '/Comme/';
$pattern2 = '/like/';
$pattern3 = '/Comme/i';
//Définir la fonction de recherche du motif dans le texte
fonction search_pattern($pattern, $string)

if(preg_match($pattern, $string))
echo "Résultat de la recherche : Une correspondance est trouvée pour le motif - $pattern
";
autre
echo "Résultat de la recherche : La correspondance n'est pas trouvée pour le modèle - $pattern
";

//Imprimer le texte d'origine
echo "Le texte original est : $texte
";
//Appelez la fonction trois fois pour trois modèles
search_pattern($pattern1, $text);
search_pattern($pattern2, $text);
search_pattern($pattern3, $text);
?>

Production:

La sortie suivante apparaîtra après l'exécution du script à partir du serveur. La première ligne montre le texte où les motifs ont été recherchés. La deuxième ligne montre la sortie du premier motif. La troisième ligne montre la sortie du deuxième motif. La quatrième ligne montre la sortie du troisième motif.

Exemple 2 : Valider l'URL

L'exemple suivant montre comment valider l'adresse URL à l'aide de la fonction preg_match(). Créez un fichier PHP avec le script suivant.

Une valeur d'URL est attribuée dans la variable $url pour le test. '@^(?:https://)?La chaîne ([^/]+)@i' est utilisée comme modèle dans la fonction preg_match() pour vérifier si l'adresse URL est valide ou non. S'il est valide, alors le nom d'hôte et le nom de domaine seront imprimés, sinon, le message d'erreur sera imprimé.

//Définition de l'URL
$url = "https://www.astuce linux.com" ;
//Définir le modèle de validation de l'URL
$motif ='@^(?:https://)?([^/]+)@i';
//Vérifiez que l'URL est valide ou non
if(preg_match($pattern, $url, $matches1))

//Imprime le message de réussite
echo "L'URL est valide.
";
//Imprime le tableau qui contient les valeurs de correspondance
echo "Les valeurs du tableau sont : ";
print_r($matches1) ;
//Récupération et impression de la valeur de l'hôte
$host = $matches1[1] ;
écho "
Le nom d'hôte est : $host" ;
//Rechercher le nom de domaine à partir de la valeur de l'hôte
preg_match('/[^.]+\.[^.]+$/', $host, $matches2) ;
écho "
Le nom de domaine est : $matches2[0]" ;

autre

//Imprime le message d'erreur
echo "URL invalide.";

?>

Production:

La sortie suivante apparaîtra après l'exécution du script à partir du serveur. L'URL fournie dans le script est valide. Ainsi, la sortie affiche les valeurs des $matches, le nom d'hôte de l'URL et le nom de domaine de l'URL.

Exemple 3 : modèle de recherche avec des valeurs d'indicateur et de décalage

L'exemple suivant montre les utilisations des valeurs flag et offset dans la fonction preg_match(). Créez un fichier PHP avec le script suivant.

Trois modèles sont utilisés dans le script pour trois types de correspondance. Dans la première fonction preg_match(), '/(bangla)(desh)/' est utilisé comme motif et la valeur du drapeau, PREG_OFFSET_CAPTURE est utilisé. Les valeurs de la $correspondance La variable s'imprimera en fonction de la sortie de la première fonction preg_match(). Dans la deuxième fonction preg_match(), '/(bangla)(glad)*(desh)/i', est utilisé comme motif et la valeur du drapeau, PREG_UNMATCHED_AS_NULL est utilisé. Si une partie du motif ne correspond pas, une valeur NULL sera stockée dans le tableau. Les valeurs de la $correspondance La variable s'imprimera en fonction de la sortie de la deuxième fonction preg_match(). Dans la troisième fonction preg_match(), '/glad/' est utilisé comme motif, la valeur du drapeau, PREG_OFFSET_CAPTURE est utilisé et 3 est utilisé comme valeur de décalage. Les valeurs de la $correspondance La variable s'imprimera en fonction de la sortie de la troisième fonction preg_match().

//Définir la valeur du texte
$text = "Bangladesh" ;
//Définir trois types de motifs
$pattern1 = '/(bangla)(desh)/i';
$pattern2 = '/(bangla)(content)*(desh)/i';
$pattern3 = '/content/';
//Utilisation de l'indicateur PREG_OFFSET_CAPTURE
preg_match($pattern1, $text, $matches, PREG_OFFSET_CAPTURE);
écho "
";
print_r($correspondance);
écho "

";
//Utilisation de l'indicateur PREG_UNMATCHED_AS_NULL
preg_match($pattern2, $text, $matches, PREG_UNMATCHED_AS_NULL);
écho "
";
print_r($correspondance);
écho "

";
//Utilisation de l'indicateur PREG_OFFSET_CAPTURE et de la valeur de décalage
preg_match($pattern3, $text, $matches, PREG_OFFSET_CAPTURE, 3);
écho "
";
print_r($correspondance);
écho "
";
?>

Production:

La sortie suivante apparaîtra après l'exécution du script à partir du serveur.

Conclusion

Les utilisations de la fonction preg_match() ont été expliquées dans ce tutoriel à l'aide de plusieurs exemples. Les utilisations des différents arguments de cette fonction ont également été montrées ici. Les lecteurs pourront utiliser correctement cette fonction dans leur script après avoir lu ce tutoriel.

Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...