Python|将 CamelCase字符串拆分为单个字符串
给定一个驼峰式字符串,编写一个Python程序将驼峰式字符串中的每个单词拆分为单独的字符串。
例子:
Input : "GeeksForGeeks"
Output : ['Geeks', 'For', 'Geeks']
Input : "ThisIsInCamelCase"
Output : ['This', 'Is', 'In', 'Camel', 'Case']
方法#1:朴素的方法
将 CamelCase字符串拆分为单个字符串的天真或暴力方法是使用for循环。首先,使用一个空列表 'words' 并附加 'str' 的第一个字母。现在使用for循环,检查当前字母是否为小写,如果是,则将其附加到当前字符串,否则,如果大写,则开始一个新的单个字符串。
# Python3 program Split camel case
# string to individual strings
def camel_case_split(str):
words = [[str[0]]]
for c in str[1:]:
if words[-1][-1].islower() and c.isupper():
words.append(list(c))
else:
words[-1].append(c)
return [''.join(word) for word in words]
# Driver code
str = "GeeksForGeeks"
print(camel_case_split(str))
输出:
['Geeks', 'For', 'Geeks']
方法 #2:使用enumerate
和zip()
在这个方法中,我们首先使用Python枚举来查找索引,新字符串从哪里开始,并将它们保存在 'start_idx' 中。最后使用 'start_idx' 我们使用Python zip返回每个单独的字符串。
# Python3 program Split camel case
# string to individual strings
import re
def camel_case_split(str):
start_idx = [i for i, e in enumerate(str)
if e.isupper()] + [len(str)]
start_idx = [0] + start_idx
return [str[x: y] for x, y in zip(start_idx, start_idx[1:])]
# Driver code
str = "GeeksForGeeks"
print(camel_case_split(str))
输出:
['', 'Geeks', 'For', 'Geeks']
方法 #3:使用Python正则表达式
# Python3 program Split camel case
# string to individual strings
import re
def camel_case_split(str):
return re.findall(r'[A-Z](?:[a-z]+|[A-Z]*(?=[A-Z]|$))', str)
# Driver code
str = "GeeksForGeeks"
print(camel_case_split(str))
输出:
['Geeks', 'For', 'Geeks']