Maison >développement back-end >Tutoriel Python >Comment convertir efficacement CamelCase en Snake_case en Python ?
La conversion de CamelCase en Snake_case est une transformation fréquente dans la programmation Python. Cette question se concentre sur la recherche d'un moyen efficace d'effectuer cette tâche.
Le code fourni utilise le module re pour réaliser cette conversion :
importer re
name = 'CamelCaseName'
name = re.sub(r'(?print(name) # camel_case_name
Ce code utilise une expression régulière pour insérer des traits de soulignement avant les majuscules, puis convertit la chaîne résultante en minuscules. Le résultat est la représentation Snake_case souhaitée.
Si les performances posent problème, l'expression régulière peut être compilée au préalable :
modèle = re.compile(r'(?name = pattern.sub('_', name).lower()
Pour les cas plus avancés, un double pass de substitution peut être utilisé :
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()
De plus, le code peut être étendu pour gérer plusieurs traits de soulignement :
def to_snake_case(name):
name = re.sub('(.)([A-Z][a-z]+)', r'_', name) name = re.sub('__([A-Z])', r'_', name) name = re.sub('([a-z0-9])([A-Z])', r'_', name) return name.lower()
De plus, une conversion inverse de Snake_case en PascalCase est fournie :
name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
imprimer(nom) # SnakeCaseName
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!