Heim > Backend-Entwicklung > Python-Tutorial > Regex in Python verstehen: Ein praktisches Beispiel

Regex in Python verstehen: Ein praktisches Beispiel

Linda Hamilton
Freigeben: 2025-01-04 01:20:42
Original
965 Leute haben es durchsucht

Understanding Regex in Python: A Practical Example

Einführung

Reguläre Ausdrücke, allgemein als Regex bekannt, sind leistungsstarke Werkzeuge für den Mustervergleich und die Textmanipulation. Sie ermöglichen es Entwicklern, Zeichenfolgen präzise zu suchen, abzugleichen und zu bearbeiten. In diesem Blogbeitrag untersuchen wir anhand eines praktischen Beispiels aus einer Kundenvalidierungsfunktion, wie Regex in Python verwendet wird.

Der Kontext

Stellen Sie sich ein Szenario vor, in dem wir Kundeninformationen validieren müssen, insbesondere ihren Vornamen, Nachnamen und ihre Mobiltelefonnummer. Der folgende Codeausschnitt zeigt, wie Regex zum Validieren einer Mobiltelefonnummer in einer Python-Klasse verwendet wird:

from sqlalchemy.orm import validates
import re

class Customer:
    @validates('first_name', 'last_name', 'mobile')
    def validate(self, key, value):
        if key == 'first_name' or key == 'last_name':
            if len(value) == 0:
                raise ValueError(f'Server validation error: No {"first name" if key == "first_name" else "last name"}')
        elif key == 'mobile':
            mobile = r"((([\(]?[0-9]{3,4}[\)]\s?)|([0-9]{3,4}[\-]))[0-9]{3,4}[\-][0-9]{4})|([0-9]{10,12})"
            mobile_regex = re.compile(mobile)
            if not mobile_regex.fullmatch(value):
                raise ValueError('Server validation error: Invalid mobile number')

        return value
Nach dem Login kopieren

Den Regex aufschlüsseln

Bei der Validierungsmethode verwenden wir Regex, um sicherzustellen, dass die vom Kunden angegebene Mobiltelefonnummer einem bestimmten Format entspricht. Lassen Sie uns das verwendete Regex-Muster aufschlüsseln:

mobile = r"((([\(]?[0-9]{3,4}[\)]\s?)|([0-9]{3,4}[\-]))[0-9]{3,4}[\-][0-9]{4})|([0-9]{10,12})"
Nach dem Login kopieren

Klammern und Bindestriche:
([(]?[0-9]{3,4}[)]s?): Dieser Teil der Regex entspricht einer optionalen öffnenden Klammer (, gefolgt von 3 oder 4 Ziffern, einer optionalen schließenden Klammer ) und einer optionalen Raum.
([0-9]{3,4}[-]): Dieser Teil entspricht 3 oder 4 Ziffern gefolgt von einem Bindestrich -.

Hauptnummer:
[0-9]{3,4}[-][0-9]{4}: Dieser Teil entspricht 3 oder 4 Ziffern, einem Bindestrich und dann 4 Ziffern.
Alternatives Format:

([0-9]{10,12}):
Dieser Teil entspricht einer Folge von 10 bis 12 Ziffern und ermöglicht so ein kompakteres Mobiltelefonnummernformat ohne Trennzeichen.

Verwenden von Regex zur Validierung

Das Regex-Muster wird mit re.compile(mobile) kompiliert und die Methode fullmatch wird verwendet, um zu prüfen, ob die gesamte Zeichenfolge mit dem Muster übereinstimmt:

mobile_regex = re.compile(mobile)
if not mobile_regex.fullmatch(value):
    raise ValueError('Server validation error: Invalid mobile number')
Nach dem Login kopieren

Wenn die Mobiltelefonnummer nicht mit dem Regex-Muster übereinstimmt, wird ein ValueError ausgelöst, der auf eine ungültige Mobiltelefonnummer hinweist.

Abschluss

Regex ist ein vielseitiges Tool zur String-Validierung und -Manipulation. In diesem Beispiel haben wir Regex verwendet, um eine Mobiltelefonnummer zu validieren und sicherzustellen, dass sie bestimmten Formaten entspricht. Durch das Verständnis und die Nutzung von Regex können Entwickler komplexe String-Operationen einfach und präzise ausführen.

Ob Sie Benutzereingaben validieren, nach Mustern im Text suchen oder Textmanipulationen durchführen, Regex bietet eine robuste Lösung für Ihre Anforderungen. Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonRegex in Python verstehen: Ein praktisches Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage