Maison  >  Article  >  développement back-end  >  Comment utiliser les expressions régulières Python pour la correspondance d'adresse IP

Comment utiliser les expressions régulières Python pour la correspondance d'adresse IP

王林
王林original
2023-06-22 16:05:564361parcourir

L'expression régulière est un puissant outil de correspondance de caractères qui peut être utilisé pour identifier et faire correspondre des chaînes dans un certain format. En programmation réseau, l'adresse IP est un concept très important, donc utiliser des expressions régulières pour la correspondance d'adresses IP en Python est une compétence très nécessaire et pratique. Cet article explique comment utiliser les expressions régulières Python pour la correspondance d'adresses IP.

  1. Expression de base de correspondance d'adresse IP

L'adresse IP se compose de quatre chiffres, chaque chiffre va de 0 à 255. Par conséquent, une expression de base de correspondance d'adresse IP peut être écrite comme suit :

import re

ip_pattern = r'(d{1,3}.){3}d{1,3}'

Cette expression signifie faire correspondre une adresse IP composée de 4 champs numériques, chaque champ numérique est composé de 1 à 3 chiffres, entre les champs numériques séparés par des points.

Dans cette expression, nous utilisons une syntaxe de base d'expressions régulières :

  • d : faire correspondre les nombres
  • {n,m} : faire correspondre le modèle précédent n à m fois
  • . : faire correspondre le point
  1. Correspondance détaillée d'adresses IP

Bien que l'expression ci-dessus puisse correspondre à la plupart des adresses IP, elle ne prend pas en compte le fait que la plage de valeurs du champ du numéro d'adresse IP doit être comprise entre 0 et 255. Pour résoudre ce problème, nous devons faire correspondre chaque champ numérique séparément et utiliser le mécanisme de regroupement d'expressions régulières pour le limiter.

ip_pattern = r'((25[0-5]|2[0-4]d|[01]?dd?).){3}(25[0-5]|2[0-4]d|[01]?dd?)'

Dans cette expression, nous faisons correspondre chaque champ numérique séparément, où :

  • 25[0-5] : Correspondance aux nombres entre 250 et 255
  • 2[0-4]d : Correspondance aux nombres entre 200 et 249
  • [01]?dd? : correspond aux nombres compris entre 0 et 199, qui peuvent contenir un ou deux chiffres

Cette expression utilise le mécanisme de regroupement, dans chaque champ numérique. Une sous-expression entre parenthèses est utilisée dans l'expression pour indiquer qu'il s'agit d'un regroupement . Il y a également un groupe à la fin de l'expression entière, indiquant que l'adresse IP entière est composée de quatre champs numériques. De cette façon, nous limitons la plage de valeurs de chaque champ numérique.

  1. Correspondance des adresses IPv6

En plus des adresses IPv4, il existe également des adresses IPv6, composées de 8 chiffres hexadécimaux (chaque numéro peut avoir 1 à 4 chiffres hexadécimaux) séparés par des deux-points. L'expression régulière de l'adresse IPv6 peut s'écrire sous la forme :

ipv6_pattern = r'[a-fA-F0-9]{1,4}(:[a-fA-F0-9]{1,4}){7}'

Cette expression signifie faire correspondre une adresse IPv6 composée de 8 chiffres hexadécimaux. Chaque numéro peut avoir 1 à 4 chiffres hexadécimaux, entre les nombres séparés par deux points.

Résumé

Les expressions régulières Python peuvent être utilisées pour gérer divers problèmes de correspondance de caractères, y compris la correspondance d'adresses IP. Lors du traitement des adresses IP, vous devez prendre en compte la plage de valeurs du champ numérique et utiliser le mécanisme de regroupement pour la limiter. En plus des adresses IPv4, il existe également des adresses IPv6, composées de 8 chiffres hexadécimaux et pouvant être mises en correspondance à l'aide d'expressions régulières similaires.

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