Files
2026-07-13 12:34:57 +08:00

30 lines
698 B
Python

"""
命名转换工具
"""
import re
def camel_to_snake(name: str) -> str:
"""
将驼峰命名转换为下划线分隔的小写形式
Args:
name: 类名(驼峰命名)
Returns:
下划线分隔的小写字符串
Examples:
UserService -> user_service
EmailService -> email_service
DatabaseClient -> database_client
HTTPClient -> http_client
"""
# 在大写字母前插入下划线(除了第一个字符)
s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
# 处理连续大写字母的情况(如 HTTPClient)
s2 = re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1)
# 转换为小写
return s2.lower()