Expresión regular de Python para hacer coincidir el inicio de una cadena o espacio en blanco
Tengo la siguiente cadena
'abc[123]defgh ijk[456]lm no[78] pq'
Y me gustaría extraer todas las partes que están entre el comienzo de la cadena y[
o entre espacios en blanco y[
. Para la cadena dada, estas son las partes.'abc'
, 'ijk'
y'no'
.
Tengo la siguiente expresion
exp = re.compile(r'\s(.*?)\[')
Pero no puedo averiguar cómo agregar el comienzo de la cadena como una expresión opcional. ¿Cómo tengo que escribir la expresión para cubrir ambos casos?