Python | Divida la string CamelCase en strings individuales

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))
Producción:

['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))
Producción:

['', '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))
Producción:

['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)
Producción

['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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *