python - 日期正则表达式造句
问题描述
我正在尝试使用这篇文章中的日期正则表达式:
^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2|(?:Feb))\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
但是,我想找到所有也包裹在空格周围的匹配项。例如在这句话中:
I went to Disney World on 11/11/1989 and once more on 12/12/2009
我想回来:
11/11/1989
12/12/2009
我该如何做到这一点?如果重要,我正在使用 Python3 正则表达式模块。
解决方案
如果您想调整您链接的正则表达式以在这样的字符串中工作,请将三个^
和$
s 更改为单词边界 ( \b
):
\b(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:0?2|(?:Feb))\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))\b|\b(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})\b
推荐阅读
- python - 为什么这个数组值被删除但仍然打印?
- c - MPFR 库计算精度的工作原理
- .net-core - .NET Core - 调试参数的目标
- c - 使用 ARB 扩展的 OpenGL 上下文创建不起作用
- python - Python tkinter 多个窗口
- telegram - Telegram bot(具有添加新管理员权限)无法提升新管理员或更改现有管理员的自定义标题。为什么?
- python-3.x - 如何使用请求库更改我的用户代理
- python - 使用 preprocessing.LabelEncoder() 将许多特征的二进制值转换为数值
- ios - HealthKit - DietaryEnergyConsumed
- machine-learning - 是否可以使用最小化 val_loss 和 test_loss 的 keras ModelCheckpoint?