不需要正则表达式:
s = "Sun 10:00am - 10:00pm<br>Mon 10:00am - 10:00pm<br>Tue 10:00am - 10:00pm<br>Wed 10:00am - 10:00pm<br>Thu 10:00am - 10:00pm<br>Fri 10:00am - 10:00pm<br>Sat 10:00am - 10:00pm"
spl = s.split("<br>") # split at <br> into the days
d={} # empty dict
for s in spl: # for each day
d.setdefault(s.split(" ")[0],[]).extend([x for x in s.split(" ")
if x!= '-'][1:])
print(d)
输出:
{'Wed': ['10:00am', '10:00pm'],
'Sun': ['10:00am', '10:00pm'],
'Fri': ['10:00am', '10:00pm'],
'Tue': ['10:00am', '10:00pm'],
'Mon': ['10:00am', '10:00pm'],
'Thu': ['10:00am', '10:00pm'],
'Sat': ['10:00am', '10:00pm']}
它将您的数据分成几天(<br>)并将每一天分成工作日(作为关键)和两个时间到一个列表中,省略我们已经作为 dict 和 @987654324 关键的日期@那是在时代之间。
您可以通过tueTime = d['Tue'] 获得周二的时间列表,并且可以通过[0] or [1] 或通过分解open,close = tueTime 访问它。
如果您只需要第一个,请使用:spl = s.split("<br>")[0] - dict 是无序的,您不会知道哪个是数据字符串中的第一个。