優雅的Python函數將CamelCase轉換為snake_case?
在Python中從CamelCase轉換為snake_case需要一種簡單而優雅的方法。本文探討了實現這種轉換的幾種有效方法,解決了命名約定的變更並提供了清晰的範例。
在Lookahead/Lookbehind 中使用正規表示式
最通用的方法利用帶有前向和後向斷言的正規表示式:
<code class="python">import re def camel_to_snake(name): name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower() return name</code>
此模式符合大寫和小寫字元之間的邊界,插入下劃線,同時轉換為小寫。
替代正規表示式模式
對於更複雜的情況,這裡有一個帶有交替的替代正規表示式:
<code class="python">pattern = re.compile(r"(\w+)([A-Z]\w+)") name = "_".join(pattern.findall(name))</code>
此模式處理連續出現多個大寫字母的情況。
避免轉換“HTTPHeader” ” 到“h_t_t_p_header”,使用以下模式:
<code class="python">pattern = re.compile(r"([a-z])([A-Z])") name = "_".join(pattern.findall(name))</code>
多次替換
多次替換<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>另一種避免方法使用前向/後向:
這個方法結合了兩個替換過程來處理各種命名約定。 🎜>
為了完整起見,這裡有一個將Snake_case 轉換為PascalCase 的函數:<code class="python">def snake_to_pascal(name): name = ''.join(word.title() for word in name.split('_')) return name</code>這些函數為Python中的CamelCase和snake_case轉換提供了全面的解決方案,滿足各種命名約定。
以上是如何在Python中優雅地將CamelCase轉換為snake_case?的詳細內容。更多資訊請關注PHP中文網其他相關文章!