使用正则表达式提取时间



我使用scrapy从黄页中抓取了一些数据。

抓取提供的业务时间是 12 小时格式,我需要将其转换为 24 小时。

我抓取的工作时间格式是:

Mon - Fri:,10:00 am - 7:00 pm.

我需要提取打开和关闭时间的两个值,将它们都转换为 24 小时格式,然后再次将字符串连接在一起。

因此,我需要设计一个正则表达式来提取时间,然后将其更改为 24 小时格式。 最后一个字符串应(如前面的示例所示(应为:

Mon - Fri:,10:00 - 19:00

我尝试了不同的正则表达式。我尝试了以下方法:

import re
txt = 'Mon - Fri:,10:00 am - 7:00 pm'
data = re.findall(r's(d{2}:d{2}s?(?:AM|PM|am|pm))', txt)
print(data)

我不是Python开发人员,但我们可以在JavaScript中以这种方式。 您可以将逻辑转换为 Python

通过这种方式,您可以将此时间转换为军事时间(24 小时(

https://jsfiddle.net/1hxojLdf/2/

let text='Mon - Fri:,10:00 am - 7:00 pm';
const regex=/(w+s-sw+:.)(d{1,2}:d{1,2}s(am|pm))s-s(d{1,2}:d{1,2}s(am|pm))/;
const result=text.match(regex);
let timeone=result[2];
let timetwo=result[4];
timeone= moment(timeone,"h:mm A").format('HH:mm');
timetwo= moment(timetwo,"h:mm A").format('HH:mm');
text=result[1]+timeone+"-"+timetwo;
alert(text)

最新更新