首页 >后端开发 >Python教程 >如何在Python中高效地将CamelCase转换为snake_case?

如何在Python中高效地将CamelCase转换为snake_case?

Susan Sarandon
Susan Sarandon原创
2024-10-28 00:20:29330浏览

How to efficiently convert CamelCase to snake_case in Python?

Python 中 CamelCase 到 Snake_case 的转换

CamelCase 到 Snake_case 的转换是 Python 编程中的常见转换。本问题重点在于寻找一种有效的方法来执行此任务。

建议的解决方案

提供的代码利用 re 模块来实现此转换:

导入 re

name = 'CamelCaseName'
name = re.sub(r'(?print(name) #camel_case_name

此代码使用正则表达式在大写字母前插入下划线,然后将结果字符串转换为小写。结果是所需的 Snake_case 表示。

替代方法

如果性能是一个问题,可以预先编译正则表达式:

模式= re.compile(r'(?name = pattern.sub('_', name).lower()

对于更高级的情况,可以使用双重替换传递:

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

此外,可以扩展代码来处理多个下划线:

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

Snake_case 到 PascalCase 转换

此外,提供从snake_case到PascalCase的反向转换:

name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
print(name) # SnakeCaseName

以上是如何在Python中高效地将CamelCase转换为snake_case?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn