Maison  >  Article  >  interface Web  >  Comment utiliser des expressions régulières pour faire correspondre les adresses IP et les noms de domaine

Comment utiliser des expressions régulières pour faire correspondre les adresses IP et les noms de domaine

php中世界最好的语言
php中世界最好的语言original
2018-01-08 11:25:365599parcourir

Nous savons qu'un nom de domaine complet se compose de noms de domaine racine, de domaine de premier niveau, de deuxième niveau, de troisième niveau..., et chaque niveau de nom de domaine est séparé par des points, et chaque niveau de nom de domaine est composé de lettres, de chiffres et de signes moins (la première lettre ne peut pas être un signe moins), il n'est pas sensible à la casse et la longueur ne dépasse pas 63.

Un seul nom peut être représenté par l'expression régulière[a-zA-Z0-9][-a-zA-Z0-9]{0, 62} Pour correspondre, le nom de domaine complet comprend au moins deux noms (comme google.com, composé de google et com), et il peut y avoir un point représentant le domaine racine à la fin (dans la spécification, le nom de domaine complet est celui avec un point à la fin, mais on considère généralement qu'un nom de domaine qui comprend plus de deux noms est également un nom de domaine complet, même s'il n'y a pas de point après).

Expression régulière qui correspond au nom de domaine complet :

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

Une chaîne IP composée de quatre segments, chaque segment est un nombre de 0 à 255 , les segments sont séparés par des points décimaux. Par exemple, 61.139.2.69 est une chaîne IP légale.

Si l'expression régulière s'écrit d{1,3}(.d{1,3}){3}, c'est sans doute irresponsable, car elle peut correspondre à 300.400.555 .666 Une telle chaîne IP illégale.

Pour faire correspondre un nombre compris entre 0 et 255, il existe plusieurs méthodes de correspondance, dont la suivante :

Description de l'expression régulière correspondante

0 ~ 9. d un chiffre
10 ~ 99 [1-9]d nombre à deux chiffres
100 ~ 199 1dd nombre à trois chiffres avec des centaines comme 1
200 ~ 249 2[0-4]d nombre à trois chiffres , la place des centaines est 2, la place des dizaines est 0~9
250~255 25[0-5] Nombre à trois chiffres, la place des centaines est 2, la place des dizaines est 5, celle des unités est 0~5

Écrit sous forme d'expression régulière, c'est-à-dire : (d|([1-9]d)|(1dd)|(2[0-4]d)|(25[0-5])) , mais une telle expression régulière lors de la correspondance d'une chaîne comme 254, 2, 5 et 4 sera mise en correspondance respectivement, ce qui entraînera 3 correspondances, ce qui ne peut pas obtenir l'effet attendu. La manière correcte est d'inverser l'ordre comme ((25[0. -5])|(2[0 -4]d)|(1dd)|([1-9]d)|d), car dans le comportement correspondant de (xxx|yyy), le la recherche se fait de gauche à droite .

L'expression régulière complète est :

 ((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)){3}

Appuyez sur :

Les nombres avec un 0 d'ordre élevé comme 061 ne peuvent pas correspondre.

Par conséquent, la manière d'écrire en haut (Partie 1.) est la version correcte et complète, tandis que la manière d'écrire (Partie 2.) est plus unilatérale

Je crois vous maîtrisez la méthode après avoir lu ces cas. Pour un contenu plus passionnant, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Comment utiliser des expressions régulières pour mettre en évidence le code JavaScript

Vérification du formulaire d'expression régulière Exemple d'introduction

Comment utiliser des expressions régulières pour faire correspondre les numéros de téléphone, les numéros de téléphone portable et les adresses e-mail

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