Regex en Python para poner espacios entre palabras que comienzan con letras mayúsculas

Dada una serie de caracteres, que es básicamente una oración. Sin embargo, no hay espacio entre diferentes palabras y la primera letra de cada palabra está en mayúsculas. Debe imprimir esta oración después de las siguientes enmiendas: 

  1. Ponga un solo espacio entre estas palabras. 
  2. Convertir las letras mayúsculas a minúsculas 

Ejemplos: 

Input : BruceWayneIsBatman
Output : bruce wayne is batman

Input :  GeeksForGeeks
Output :  geeks for geeks

Tenemos una solución existente para este problema, consulte el enlace Colocar espacios entre palabras que comienzan con letras mayúsculas

Podemos resolver este problema rápidamente en python usando el método findall() de la biblioteca re (regex)

Acercarse : 

  1. Dividir cada palabra comenzando con una letra mayúscula usando el método re.findall(expression, str) .
  2. Ahora cambia la letra mayúscula de cada palabra a minúsculas y concatena cada palabra con espacio.

Implementación:

Python3

import re
   
def putSpace(input):
   
    # regex [A-Z][a-z]* means any string starting 
    # with capital character followed by many 
    # lowercase letters 
    words = re.findall('[A-Z][a-z]*', input)
   
    # Change first letter of each word into lower
    # case
    for i in range(0,len(words)):
      words[i]=words[i][0].lower()+words[i][1:]
    print(' '.join(words))
     
   
# Driver program
if __name__ == "__main__":
    input = 'BruceWayneIsBatman'
    putSpace(input)
Producción

bruce wayne is batman

Complejidad temporal: O(n)
Espacio auxiliar: O(n) 

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra 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 *