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

Regex in Python verstehen: Ein praktisches Beispiel

Linda Hamilton
Linda HamiltonOriginal
2025-01-04 01:20:42957Durchsuche

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

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})"

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')

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!

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