Split string between characters with Python regex

Viewed 2332

I'm trying to split the string:

> s = Ladegårdsvej 8B7100 Vejle

with a regex into:

[street,zip,city] = ["Ladegårdsvej 8B", "7100", "Vejle"]

s varies a lot, the only certain part is that there are always 4 digits in the zip and a whitespace afterwards. My idea is thus to "match from the right" on 4 digits and a whitespace to indicate that the string should be split at that point in the string.

Currently I'm able to get street and city like this:

> print re.split(re.compile(r"[0-9]{4}\s"), s)
["Ladegårdsvej 8B", "Vejle"]

How would I go about splitting s as desired; in particular, how to do it in the middle of the string between the number in street and zip?

3 Answers
Related