程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python编程技巧:如何将字符串转换为驼峰命名法?

hfteth 2025-02-19 12:10:29 技术文章 22 ℃

在Python编程中,经常需要将各种格式的字符串转换为驼峰命名法(CamelCase),以满足变量名、函数名或类名的命名规范。驼峰命名法分为小驼峰(lowerCamelCase)和大驼峰(UpperCamelCase)两种,前者首字母小写,后续单词首字母大写;后者则所有单词首字母均大写。

小驼峰命名法(lowerCamelCase)

小驼峰命名法要求字符串的首字母小写,之后的每个单词首字母大写。以下是一个Python实现:

Bash
def to_lower_camel_case(s):
    """
    将字符串转换为小驼峰命名法
    :param s: 输入字符串,假设已经是首字母大写或全大写,且单词间无分隔符
    :return: 转换后的小驼峰命名法字符串
    """
    if not s:
        return ""
    result = []
    is_first = True  # 标记是否为第一个字母
    for char in s:
        if char.isupper() and not is_first:  # 如果当前字符大写且不是第一个字符
            result.append('_' + char.lower())  # 插入下划线并转换为小写
        else:
            result.append(char.lower() if is_first and char.isupper() else char)  # 处理首字母大写的情况
        is_first = False
    return ''.join(result).lstrip('_')  # 去除开头的下划线(如果有的话)

# 示例
input_str = "CooingOspreysEchoesIsleRiver"
print(to_lower_camel_case(input_str)) 

执行结果:

大驼峰命名法(UpperCamelCase)

大驼峰命名法与小驼峰类似,只是第一个单词的首字母也大写。我们可以通过修改上述函数来实现:

Bash
import re

def to_lower_camel_case(s):
    # 使用正则表达式清洗字符串,去除非字母字符,并转换为大写字母
    cleaned_s = re.sub(r'[^a-zA-Z]', '', s).title()    
    # 处理首字母小写
    result = [cleaned_s[0].lower()] if cleaned_s else []    
    # 添加剩余字符
    result.extend(cleaned_s[1:])    
    return ''.join(result)
# 示例
input_str = "Cooing Ospreys-Echoes_Isle River"
print(to_lower_camel_case(input_str))  # 输出应为 cooingOspreysEchoesIsleRiver

def to_upper_camel_case(s):
    """
    将字符串转换为大驼峰命名法
    :param s: 输入字符串,可以包含非字母字符作为分隔符
    :return: 转换后的大驼峰命名法字符串
    """
    # 直接调用小驼峰命名法函数,并将结果首字母大写
    result = to_lower_camel_case(s)
    return result[0].upper() + result[1:] if result else ""

# 示例
print(to_upper_camel_case(input_str))

执行结果:

使用正则表达式 re.sub(r'[^a-zA-Z]', '', s) 去除所有非字母字符,并保留大写字母。title() 方法将字符串中每个单词的首字母转换为大写。对于小驼峰命名法,首字母必须是小写,所以先将第一个字符转换为小写。

通过这种方式,函数可以更好地处理各种输入情况,包括包含空格、连字符等非字母字符的字符串。

最近发表
标签列表