use a list to generate a regular expression by pasting (.*)between them, then use stripto remove spaces:
import re
columns = ["Name:", "ID:", "Date:", "Building:", "Room:", "Notes:"]
s = "Name: JohnID:123:45Date: 8/2/17Building:Room:Notes: i love notes"
result = [x.strip() for x in re.match("".join(map("{}(.*)".format,columns)),s).groups()]
print(result)
gives:
['John', '123:45', '8/2/17', '', '', 'i love notes']
the part stripcan be processed by a regular expression due to a more complex regular expression, but a simpler general expression:
result = re.match("".join(map("{}\s*(.*)\s*".format,columns)),s).groups()
: , ( ):
result = re.match("".join(["{}\s*(.*)\s*".format(re.escape(x)) for x in columns]),s).groups()