gpt4 book ai didi

python - 给定的字符串没有在 python 中转换为驼峰命名法?

转载 作者:行者123 更新时间:2023-12-04 12:31:43 24 4
gpt4 key购买 nike

最近我在 python 中创建了一个 function ,它可以将任何字符串转换为 camelCase 格式,但是在这个函数中传递不同类型的字符串时我遇到了一个问题我试图传递 "BirdFlight" 它没有将其转换为 camelCase

注意 - 我使用了 python 内置的 re 模块。

import re

def camelCase(string):
string = re.sub(r'(_|-)+', ' ', string).title().replace(' ', '')

return ''.join([string[0].lower() + string[1:]])

之后,我创建了一个包含 3 种不同类型字符串的 list 以传入函数。

differentTypeOfString = ['bird flight', 'BirdFlight', '-BIRD-FLIGHT-']

for i in differentTypeOfString:
print(camelCase(i))

忽略变量名称,我会在之后更改它。

输出

#1 birdFlight
#2 birdflight
#3 birdFlight

嗯,我刚才遇到的问题比较多。我增加了列表中的字符串类型:

differentTypeOfString = ['bird flight', 'BirdFlight', '-BIRD-FLIGHT-', 'Bird-Flight', 'bird_flight', '--bird.flight', 'Bird-FLIGHT', 'birdFLIGHT']

现在我得到这个输出

#1 birdFlight
#2 birdflight
#3 birdFlight
#4 birdFlight
#5 birdFlight
#6 bird.Flight
#7 birdFlight
#8 birdflight

"birdFLIGHT""--bird.flight" 中的 "."也有同样的问题。 (点)没有删除。

最佳答案

这适用于您当前的示例。 re.sub 在任何现有的 序列之间添加一个空格。

import re

def camelCase(string):
string = re.sub(r'(?:(?<=[a-z])(?=[A-Z]))|[^a-zA-Z]', ' ', string).title().replace(' ', '')
return ''.join([string[0].lower() + string[1:]])

differentTypeOfString = ['bird flight', 'BirdFlight', '-BIRD-FLIGHT-', 'Bird-Flight', 'bird_flight', '--bird.flight', 'Bird-FLIGHT', 'birdFLIGHT']

for i in differentTypeOfString:
print(camelCase(i))

输出:

birdFlight
birdFlight
birdFlight
birdFlight
birdFlight
birdFlight
birdFlight
birdFlight

关于python - 给定的字符串没有在 python 中转换为驼峰命名法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68580116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com