regex - 如何在 Python 中使用正则表达式将时间与天数匹配?
问题描述
这是我第一次在这里提出问题,我是Python的初学者。我会将时间(小时和分钟)与文本中的天数相匹配。我为此写了这个表达式:
(([0-9]+.?[0-9]+(a|p)m)[(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day]?)
但是,它只匹配没有天数的时间。你能帮我看看这个表达有什么问题吗?非常感谢
解决方案
问题在 内[(Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day]?
,因为如www.regular-expressions.info所述:
只有括号可以用于分组。方括号定义一个字符类,大括号由具有特定限制的量词使用。
因此,您需要更改括号的方括号:
((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?
您的最终正则表达式应如下所示:
(([0-9]+.?[0-9]+(a|p)m)((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?)
我做了一些改变来改进它:
((\d{1,2}:?\d{1,2}(a|p)m)((Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)?)
在哪里:
\d
它与[0-9]
.{1,2}
表示前面的令牌应该出现 1 或 2 次。
作为提示,您可以使用https://regex101.com来构建您的正则表达式并就地测试它们。
推荐阅读
- php - 从 Woocommerce 产品搜索结果页面中删除跟踪
- bash - 创建一个脚本来保存文件
- php - 更改 Woocommerce 购物车页面中的特定文本
- c# - 实体框架执行不必要的 SQL 查询,而所有数据都已在内存中获取?
- php - 用 PHP 数组替换 html 列表
- python - Python JSON 从第二个列表解析并存储为 pandas 数据帧作为 OHLC 数据进行统计分析
- uwp - UWP 包提交
- php - 无法在 PHP 中使用 cURL 下载文件
- java - 如何使用硒在对话框中向下滚动
- docusignapi - Docusign 添加集成商密钥未显示在 docusign 帐户管理面板上