Maison >développement back-end >tutoriel php >Méthode d'expression régulière PHP pour vérifier si le texte contient une chaîne spécifique

Méthode d'expression régulière PHP pour vérifier si le texte contient une chaîne spécifique

王林
王林original
2023-06-24 08:29:522557parcourir

Dans le développement PHP, il est souvent nécessaire de vérifier si une chaîne contient une sous-chaîne spécifique, par exemple déterminer si une adresse email contient le symbole « @ » ou si un mot de passe répond à certaines règles. Parmi elles, les expressions régulières sont une méthode couramment utilisée qui permet d'obtenir rapidement et avec précision les résultats requis. Par conséquent, cet article explique comment utiliser les expressions régulières PHP pour vérifier si un texte contient une chaîne spécifique.

1. Introduction aux expressions régulières

Avant de commencer à présenter les méthodes spécifiques, présentons brièvement les concepts de base des expressions régulières.

L'expression régulière (Regex) est un langage utilisé pour décrire, faire correspondre et remplacer du texte. À l'aide d'expressions régulières, vous pouvez trouver rapidement la chaîne cible à partir d'un ou plusieurs segments de texte, ou effectuer des opérations telles que couper et remplacer la chaîne. Les expressions régulières sont composées de symboles spéciaux et de caractères réguliers, et l'ordre et la combinaison de chaque composant sont conformes à certaines règles.

En PHP, vous pouvez utiliser des expressions régulières pour trouver des chaînes qui remplissent des conditions via la fonction preg_match(). L'utilisation spécifique est la suivante :

preg_match($pattern, $subject, $matches);

Parmi eux, $pattern est la chaîne de l'expression régulière, $subject est la chaîne source à mettre en correspondance et $matches est un paramètre facultatif utilisé pour stocker les résultats correspondants.

2. Utilisez des expressions régulières pour déterminer si le texte contient une chaîne spécifique

Ce qui suit consiste à déterminer si l'adresse e-mail contient le symbole "@" comme exemple pour présenter comment utiliser des expressions régulières pour vérifier si le texte contient une chaîne spécifique. chaîne.

  1. Définir une expression régulière

Dans ce cas, il vous suffit de rechercher si la chaîne source contient le symbole "@", afin de pouvoir utiliser une expression régulière simple pour compléter la correspondance :

$pattern = '/@/';

où commence la barre oblique avec et Le caractère de fin est le délimiteur de l'expression régulière et le caractère "@" entre eux représente la chaîne cible correspondante.

  1. Appelez la fonction preg_match() pour faire correspondre les données cibles

Ensuite, vous pouvez appeler la fonction preg_match() pour faire correspondre :

$email = "example@example.com";
if (preg_match($pattern, $email)) {
    echo "该邮箱地址包含@符号!";
} else {
    echo "该邮箱地址不包含@符号!";
}

Dans le code ci-dessus, la variable $email stocke la chaîne cible, et si la la correspondance est réussie, "cette adresse e-mail" est affichée. L'adresse contient le symbole @!"; sinon, elle affiche "L'adresse e-mail ne contient pas le symbole @!".

3. Utilisez des qualificatifs dans les expressions régulières

Dans l'exemple ci-dessus, une expression régulière simple est utilisée, qui ne peut répondre qu'aux exigences de correspondance les plus élémentaires. Si vous devez augmenter la précision de la correspondance, vous pouvez utiliser des qualificatifs.

Les qualificateurs sont utilisés pour contrôler le nombre d'occurrences de caractères dans les expressions régulières. Par exemple, vous pouvez utiliser * (zéro ou plusieurs caractères), + (un ou plusieurs caractères) et ? (zéro ou un caractère) pour contrôler le nombre de sous-chaînes cibles. L'utilisation spécifique est la suivante :

  •  : représente zéro ou plusieurs caractères, par exemple /a/ peut correspondre à 0 ou plusieurs a.
  • + : Indique un ou plusieurs caractères, par exemple /a+/ peut correspondre à 1 ou plusieurs a.
  • ? : Indique zéro ou un caractère, par exemple /a?/ peut correspondre à 0 ou 1 a.
  • {n} : représente n caractères, par exemple /a{2}/ peut correspondre à deux a.
  • {n,} : représente n caractères ou plus, par exemple /a{2,}/ peut correspondre à deux ou plusieurs a.
  • {n,m} : représente n à m caractères, par exemple /a{2,3}/ peut correspondre à 2 ou 3 a.

En utilisant les qualificatifs ci-dessus, vous pouvez faire correspondre la chaîne cible plus en détail. Par exemple, déterminez si un mot de passe contient au moins une lettre majuscule et un chiffre :

$pattern = '/^(?=.*[A-Z])(?=.*d).+$/';
$password = "Abc123";
if (preg_match($pattern, $password)) {
    echo "该密码符合规则!";
} else {
    echo "该密码不符合规则!";
}

Dans le code ci-dessus, l'expression régulière /^(?=.[A-Z])(?=.d).+$/ est utilisé, où :

  • ^ représente la position de départ de la correspondance restreinte ;
  • (?=.*[A-Z]) représente qu'elle doit contenir au moins une lettre majuscule ;
  • (?=.*d) représente ; qu'il doit contenir au moins un chiffre ;
  • .+ signifie qu'il peut contenir n'importe quel nombre de caractères, mais ne peut pas être vide.

4. Conclusion

À travers cet article, nous avons appris à utiliser les expressions régulières de PHP pour vérifier si le texte contient une chaîne spécifique. L'expression régulière est un outil très puissant qui permet un traitement de texte rapide et précis. Ses règles grammaticales sont très riches. Nous n'en avons mentionné que certaines. Les lecteurs peuvent en apprendre davantage en fonction des besoins réels.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn