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的反向转换:
name = 'snake_case_name'
name = ''.join(word.title() for word in name.split('_'))
print(name) # SnakeCaseName
以上是如何在Python中高效地将CamelCase转换为snake_case?的详细内容。更多信息请关注PHP中文网其他相关文章!