Create a function that takes any sentence and redistributes the spaces (and adds additional spaces if needed) so that each word starts with a vowel. The letters should all be in the same order but every vowel in the sentence should be the start of a new word. The first word in the new sentence may start without a vowel. It should return a string in all lowercase with no punctuation (only alphanumeric characters).



EXAMPLES
'It is beautiful weather today!' becomes 'it isb e a ut if ulw e ath ert od ay'
'Coding is great' becomes 'c od ing isgr e at'
'my number is 0208-533-2325' becomes 'myn umb er is02085332325'

Difficulty: introductory

Starter code:

def vowel_start(st):
	

Solutions:
from re import sub
def vowel_start(st):
    return sub(r'(?<=.)([aeiou])', r' \1', sub(r'[^a-z0-9]', '', st.lower()))


def vowel_start(s): 
    r = ''
    for letter in s:
        if letter in 'aeiouAEIOU':
            r+=' '+letter.lower()
        elif letter.isalnum():
            r+=letter.lower()
    return r.lstrip(' ')

from string import ascii_lowercase, digits

def vowel_start(st): 
    return ''.join([
        (' ' + c) if c in 'aeiou' else c 
        for c in st.lower() 
        if c in ascii_lowercase + digits
    ]).lstrip()

from re import sub

def vowel_start(st): 
    return sub(r"\B([aeiou])", r" \1", ''.join(filter(str.isalnum, st)).lower())

def vowel_start(stg): 
    return "".join(f"{' ' if c in 'aeiou' else ''}{c}" for c in stg.lower() if c.isalnum()).lstrip()

def vowel_start(st): 
    return ''.join(' ' * (i in 'aeiou') + i for i in st.lower() if i.isalnum()).strip()

def vowel_start(st): 
    rst = ''
    for e in st:
        if not e.isalnum(): continue
        e = e.lower()
        if e in 'aeiou':
            rst += f' {e}'
        else:
            rst += e
    return rst.lstrip()

def vowel_start(st): 
    return ''.join(f'{" " * (c in "aeiou")}{c}' for c in st.lower() if c.isalnum()).lstrip()

vowel_start=lambda s:''.join(' '*(x in'aeiou')+x*x.isalnum()for x in s.lower()).strip()

import re

def vowel_start(st):
    st = re.sub("[^a-zA-Z0-9]", "", st.lower())
    r = st[0] if len(st) else ""
    for s in st[1:]: r += (" " if s in "aeiou" else "") + s
    return r