Heim > Artikel > Backend-Entwicklung > Wie konvertiert man CamelCase elegant in Snake_case in Python?
Elegante Python-Funktion zum Konvertieren von CamelCase in Snake_case?
Die Konvertierung von CamelCase in Snake_case in Python erfordert einen einfachen, aber eleganten Ansatz. In diesem Artikel werden mehrere effektive Methoden zum Erreichen dieser Transformation untersucht, wobei auf Variationen in Namenskonventionen eingegangen und klare Beispiele bereitgestellt werden.
Verwendung regulärer Ausdrücke mit Lookahead/Lookbehind
Die vielseitigste Methode verwendet reguläre Ausdrücke mit Lookahead- und Lookbehind-Behauptungen:
<code class="python">import re def camel_to_snake(name): name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower() return name</code>
Dieses Muster gleicht Grenzen zwischen Groß- und Kleinbuchstaben ab, fügt Unterstriche ein und konvertiert gleichzeitig in Kleinbuchstaben.
Alternative Regex-Muster
Für komplexere Fälle gibt es hier einen alternativen regulären Ausdruck mit Alternation:
<code class="python">pattern = re.compile(r"(\w+)([A-Z]\w+)") name = "_".join(pattern.findall(name))</code>
Dieses Muster behandelt Fälle, in denen mehrere Großbuchstaben nacheinander erscheinen.
Um die Konvertierung von „HTTPHeader " zu „h_t_t_p_header“ verwenden Sie das folgende Muster:
<code class="python">pattern = re.compile(r"([a-z])([A-Z])") name = "_".join(pattern.findall(name))</code>
Multi-Pass-Ersetzungen
Ein alternativer Ansatz vermeidet die Verwendung von Lookahead/Lookbehind:
<code class="python">def camel_to_snake(name): name = re.sub('(.)([A-Z][a-z]+)', r'_', name) return re.sub('([a-z0-9])([A-Z])', r'_', name).lower()</code>
Dieser Ansatz kombiniert zwei Substitutionsdurchläufe, um verschiedene Namenskonventionen zu handhaben.
Snake Case in Pascal Case
Der Vollständigkeit halber finden Sie hier eine Funktion zum Konvertieren von „snake_case“ in „PascalCase“. :
<code class="python">def snake_to_pascal(name): name = ''.join(word.title() for word in name.split('_')) return name</code>
Diese Funktionen bieten eine umfassende Lösung für CamelCase- und Snake_case-Transformationen in Python und berücksichtigen verschiedene Namenskonventionen.
Das obige ist der detaillierte Inhalt vonWie konvertiert man CamelCase elegant in Snake_case in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!