作者:wang小资_588 | 来源:互联网 | 2023-01-27 06:56
1> Jean-Françoi..:
使用列表通过插入(.*)
之间生成正则表达式,然后使用strip
删除空格:
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)
收益率:
['John', '123:45', '8/2/17', '', '', 'i love notes']
该strip
部分可以由正则表达式处理,代价是更复杂的正则表达式,但更简单的整体表达式:
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()