Dada una string en un caso de camello, escriba un programa de Python para dividir cada palabra en la string de caso de camello en strings individuales.
Ejemplos:
Input : "GeeksForGeeks" Output : ['Geeks', 'For', 'Geeks'] Input : "ThisIsInCamelCase" Output : ['This', 'Is', 'In', 'Camel', 'Case']
Método #1: Enfoque ingenuo Un enfoque ingenuo o de fuerza bruta para dividir la string CamelCase en strings individuales es usar for loop. Primero, use una lista vacía de ‘palabras’ y agréguele la primera letra de ‘str’. Ahora, usando un ciclo for , verifique si la letra actual está en minúsculas o no, si es así, agréguela a la string actual, de lo contrario, si está en mayúsculas, comience una nueva string individual.
Python3
# 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']
Método #2: Usando enumerate y zip() En este método, primero usamos Python enumerate para encontrar índices, donde comienza la nueva string y los guardamos en ‘start_idx’. Finalmente, usando ‘start_idx’, devolvemos cada string individual usando Python zip .
Python3
# 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']
Método #3: Usar expresiones regulares de Python
Python3
# 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']
Método #4: Usando los métodos isupper(),split(),remove() .
Python3
# Python3 program Split camel case # string to individual strings s="ThisIsInCamelCase" new_string="" for i in s: if(i.isupper()): new_string+="*"+i else: new_string+=i x=new_string.split("*") x.remove('') print(x)
['This', 'Is', 'In', 'Camel', 'Case']
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA