python - 如何在python中将变量字符串输入re.search
问题描述
最初,我的日期正则表达式按如下方式工作,例如捕获“2018 年 2 月 12 日”
match = re.search(r'(January|February|March|April|May|June|July|August|September?|October?|November|December)\s+\d{1,2},\s+\d{4}', date).group()
但是我希望它变得更加灵活,并将我的变量字符串输入到我的正则表达式中,但是在查看了许多关于类似问题的 stackoverflow 线程后,我似乎无法让它工作。我是一个新手,所以我不确定出了什么问题。我知道仅仅 MONTHS 是行不通的。谢谢
MONTHS = "January|February|March|April|May|June|July|August|September|October|November|December"
match = re.search(r'(MONTHS)\s+\d{1,2},\s+\d{4}', date).group()
print(match)
'NoneType' object has no attribute 'group'
解决方案
您将 MONTHS 作为匹配字符串的一部分,python 不知道它应该引用存储另一个字符串的变量。
因此,请尝试:
match = re.search(r'(' + MONTHS + ')\s+\d{1,2},\s+\d{4}', date).group()
这将连接(粘在一起)三个字符串,第一位,然后是存储在 MONTHS 变量中的字符串,然后是最后一位。
推荐阅读
- c++ - 在 xtensor 中复制视图
- javascript - 将标题贴在顶部下方,类似于页面索引
- go - Go服务器上的一页REST api返回系统MAC地址
- python - 在 Python 中反转任意切片
- javascript - Javascript 如何在下拉菜单中实现条件/嵌套过滤器
- java - WAS Liberty 配置文件 - 使用 ClassLoader.getSystemResourceAsStream 读取属性
- java - Spring - 从现有的 BindingResult 和 Model 构造新的 modelAndView
- php - PHP 设置 Cookie
- nlm - GenABEL 中的 VIFGC_ovedom 函数
- python - AttributeError:类型对象“用户”没有属性“获取”