驼峰(CamelCase)和下划线(Snake_case)变量名转换

#!/bin/bash

# 定义一个函数,将驼峰命名转换为下划线命名
convert_camel_to_snake() {
    local camel_case=$1
    local snake_case

    # 将整个字符串中的连续大写字母(第一段)转为小写
    snake_case=$(echo "$camel_case" | sed -r 's/^([A-Z]+)([A-Z][a-z])/\L\1\2/')

    # 处理驼峰命名中的大写字母,将大写字母替换为下划线加小写字母
    snake_case=$(echo "$snake_case" | sed -r 's/([a-z0-9])([A-Z])/\1_\L\2/g')

    # 处理连续大写字母的情况,确保所有大写字母都转为小写
    snake_case=$(echo "$snake_case" | sed -r 's/([A-Z]+)/\L\1/g')

    echo "$snake_case"
}

# 示例变量
camel_case_variable="projMainRoleGUID"
camel_case_variable2="ExampleVariableName"
camel_case_variable3="HTTPResponseCode"
camel_case_variable4="XMLHttpRequest"
camel_case_variable5="APIGatewayEndpoint"
camel_case_variable6="JSON"

snake_case_variable=$(convert_camel_to_snake "$camel_case_variable")
snake_case_variable2=$(convert_camel_to_snake "$camel_case_variable2")
snake_case_variable3=$(convert_camel_to_snake "$camel_case_variable3")
snake_case_variable4=$(convert_camel_to_snake "$camel_case_variable4")
snake_case_variable5=$(convert_camel_to_snake "$camel_case_variable5")
snake_case_variable6=$(convert_camel_to_snake "$camel_case_variable6")

echo "CamelCase: $camel_case_variable -> Snake_case: $snake_case_variable"
echo "CamelCase: $camel_case_variable2 -> Snake_case: $snake_case_variable2"
echo "CamelCase: $camel_case_variable3 -> Snake_case: $snake_case_variable3"
echo "CamelCase: $camel_case_variable4 -> Snake_case: $snake_case_variable4"
echo "CamelCase: $camel_case_variable5 -> Snake_case: $snake_case_variable5"
echo "CamelCase: $camel_case_variable6 -> Snake_case: $snake_case_variable6"


posted @ 2025-01-21 10:16  chenzechao  阅读(112)  评论(0)    收藏  举报