python - 查找两个标签之间的有效日期
问题描述
给定一个非结构化 HTML 文本,其中包含一些格式为 '%b %d' 的日期值和一些约束(见下文),您认为哪种方法最合适:
- 使用正则表达式?
- 手动解析?
- 拿一些python日期库?
这是 HTML 文本的摘录:
text = '...some text ...>Jan 29 AMC<...some text ...'
我正在寻找提取部分:
- 以 > 开头
- 然后是 3 个字母(即月份)
- 然后是空白
- 然后2位数
- 然后是 AMC 或 BMO 这个词
- 然后 <
解决方案
使用这个正则表达式:
<.*?>(\w{3}\s\d{2}\s(AMC|BMO))
* 请注意,该模式可以让您获得非月模式!否则你必须手动设置它们。
<.*?>((Jan|Feb|....)\s\d{2}\s(AMC|BMO))
蟒蛇代码:
import re
reg = r'<.*?>(\w{3}\s\d{2}\s(AMC|BMO))'
text = '<...some text ...>Jan 29 AMC</...some text ...>'
Res = re.findall(reg,text)
if len(Res) != 0:
for r in Res:
print(r[0])
或者
import re
reg = r'<.*?>(\w{3}\s\d{2}\s(AMC|BMO))'
text = '<...some text ...>Jan 29 AMC</...some text ...>'
Res = re.match(reg,text)
if Res:
print ('Valid')
推荐阅读
- r - 为 R 中的每个 ID 在数据框中添加和重复列表
- python - pandas 随机分配列名
- php - Laravel 邮件应该队列与作业应该队列
- types - 理解类型注解中的类型变量
- android - 如何通知 Backstack 中的 Fragment 它再次位于顶部
- python - 如何从其他文件运行@app.route
- python - 比较excel文件中的名称列表和列
- excel - 使用 excel 插件从 azure web storage 请求到 jira 时出现 Cors 错误
- mysql - Laravel API 资源(创建精确 API 的问题)
- express - 如何正确地将重写插件包含到 Express Gateway 策略中?