Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie reguläre Python-Ausdrücke für den IP-Adressabgleich

So verwenden Sie reguläre Python-Ausdrücke für den IP-Adressabgleich

王林
王林Original
2023-06-22 16:05:564415Durchsuche

Regulärer Ausdruck ist ein leistungsstarkes Zeichenvergleichstool, mit dem Zeichenfolgen in einem bestimmten Format identifiziert und abgeglichen werden können. In der Netzwerkprogrammierung ist die IP-Adresse ein sehr wichtiges Konzept, daher ist die Verwendung regulärer Ausdrücke für den IP-Adressabgleich in Python eine sehr notwendige und praktische Fähigkeit. In diesem Artikel wird erläutert, wie Sie reguläre Python-Ausdrücke für den IP-Adressabgleich verwenden.

  1. Grundlegender Ausdruck für den IP-Adressabgleich

Die IP-Adresse besteht aus vier Zahlen, jede Zahl reicht von 0 bis 255. Daher kann ein grundlegender IP-Adressen-Übereinstimmungsausdruck wie folgt geschrieben werden:

import re

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

Dieser Ausdruck bedeutet, eine IP-Adresse abzugleichen, die aus 4 numerischen Feldern besteht. Jedes numerische Feld besteht aus 1 bis 3 Ziffern und die numerischen Felder werden durch Punkte getrennt.

In diesem Ausdruck verwenden wir einige grundlegende Syntax regulärer Ausdrücke:

  • d: Zahlen abgleichen
  • {n,m}: Das vorherige Muster n- bis m-mal abgleichen
  • .: Punkt abgleichen
  1. Detaillierter Abgleich von IP-Adressen

Obwohl der obige Ausdruck mit den meisten IP-Adressen übereinstimmen kann, berücksichtigt er nicht, dass der Wertebereich des IP-Adressnummernfelds zwischen 0 und 255 liegen sollte. Um dieses Problem zu lösen, müssen wir jedes numerische Feld separat abgleichen und den Gruppierungsmechanismus für reguläre Ausdrücke verwenden, um es einzuschränken.

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

In diesem Ausdruck gleichen wir jedes Zahlenfeld einzeln ab, wobei:

  • 25[0-5]: Zahlen zwischen 250 und 255 abgleichen
  • 2[0-4]d: Zahlen zwischen 200 und 249 abgleichen
  • [01]?dd?: Entspricht Zahlen zwischen 0 und 199, die ein- oder zweistellig sein können

Dieser Ausdruck verwendet den Gruppierungsmechanismus in jedem Zahlenfeld. Im Ausdruck wird ein Unterausdruck in Klammern verwendet, um anzuzeigen, dass es sich um eine Gruppierung handelt . Am Ende des gesamten Ausdrucks befindet sich außerdem eine Gruppe, die darauf hinweist, dass die gesamte IP-Adresse aus vier numerischen Feldern besteht. Auf diese Weise begrenzen wir den Wertebereich jedes numerischen Feldes.

  1. Abgleich von IPv6-Adressen

Neben IPv4-Adressen gibt es auch IPv6-Adressen, die aus 8 Hexadezimalziffern (jede Zahl kann 1 bis 4 Hexadezimalziffern haben) bestehen, die durch Doppelpunkte getrennt sind. Der reguläre Ausdruck einer IPv6-Adresse kann wie folgt geschrieben werden:

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

Dieser Ausdruck bedeutet, dass eine IPv6-Adresse aus 8 hexadezimalen Ziffern besteht. Jede Zahl kann 1 bis 4 hexadezimale Ziffern enthalten, die durch einen Doppelpunkt getrennt sind.

Zusammenfassung

Python-reguläre Ausdrücke können verwendet werden, um eine Vielzahl von Zeichenabgleichsproblemen zu lösen, einschließlich des IP-Adressabgleichs. Bei der Verarbeitung von IP-Adressen müssen Sie den Wertebereich des numerischen Feldes berücksichtigen und ihn mithilfe des Gruppierungsmechanismus einschränken. Neben IPv4-Adressen gibt es auch IPv6-Adressen, die aus 8 Hexadezimalziffern bestehen und mit ähnlichen regulären Ausdrücken abgeglichen werden können.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Python-Ausdrücke für den IP-Adressabgleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn