Python-Regex, um den Beginn der Zeichenfolge oder des Leerzeichens abzugleichen

Ich habe die folgende Zeichenfolge

'abc[123]defgh ijk[456]lm no[78] pq'

Und ich möchte alle Teile extrahieren, die sich entweder zwischen dem Anfang der Zeichenfolge und befinden[ oder zwischen Leerzeichen und[. Für die angegebene Zeichenfolge sind dies die Teile'abc', 'ijk', und'no'.

Ich habe den folgenden Ausdruck

exp = re.compile(r'\s(.*?)\[')

Aber ich kann nicht herausfinden, wie man den Anfang der Zeichenkette als optionalen Ausdruck hinzufügt. Wie muss ich den Ausdruck schreiben, um beide Fälle abzudecken?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage