从短信中缩短工作日

2024-05-15 22:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个python库,它采用一个由不同类型的小时格式组成的段落。段落实际上是从不同的餐厅网站,他们有不同的运作时间为每个网站的格式。所以,我决定写一个任何格式的库(例如:M-Fri 10am-12pm,M,Tue,Wed 00:00-18:00等等)。我的决定是编写一组不同的RegEx,它接受一个字符串,如果它与我的任何一个模式匹配,就继续。在

我选择RegEx模式匹配是因为,不是为每个模式编写自己的逻辑,而是仅仅使用结构更换五月需要很多时间。但我还是坚持使用regex,因为我是新手。所以你们中的任何人都可以建议我如何完成下面的任务?在

作为第一步,我想缩短所有的工作日格式为3个字母缩短星期日如下。 例子: 星期一上午9:00-下午5:00,星期二上午9:00-下午5:00,星期三上午9:00-下午5:00,星期四上午9:00-下午5:00,星期五上午9:00-下午5:00,星期六不营业,星期天不营业

输出应该是 “周一09:00 AM-5:00 PM,周二09:00 AM-5:00 PM,周三09:00 AM-5:00,周四09:00 AM-5:00,周五09:00 AM-5:00,周六闭馆,周日闭馆”

谢谢。在


Tags: 类型网站格式时间am餐厅regex段落
2条回答

似乎一个简单的^{}应该在这里工作:

new_paragraph = paragraph.replace('Monday','Mon')

{a2甚至可以让这个模块更容易使用:

^{pr2}$

对于真正的大段落,可能值得切换到regex:

import re
import calendar

regex = re.compile('|'.join(calendar.day_name))
sub_dict = dict(zip(calendar.day_name,calendar.day_abbr))
new_paragraph = regex.sub(lambda match: sub_dict[match.group(0)],paragraph)

当然,对于calendar,缩写/etc依赖于区域设置(但无论如何,这可能是可取的)

尝试使用以下模式:([a-zA-Z]{3})[a-zA-Z]+([0-9]|关闭) 而这个替代品:1美元2美元

相关问题 更多 >