如何将多个变量传递给常规(re.search)表达式[重复]
Posted
技术标签:
【中文标题】如何将多个变量传递给常规(re.search)表达式[重复]【英文标题】:How to pass multiple variables to a regular (re.search) expression [duplicate] 【发布时间】:2020-01-14 02:07:43 【问题描述】:我正在尝试使用正则表达式 (re.search) 传递变量,但我似乎无法使用下面的代码将信息成功读入 match.group(1)
、(2)
等。有人可以快速看看我哪里出错了吗?
serial = 'abcdeID:11111abcdePR:22222abcde'
id = 11111
pr = 22222
match = re.search(r'ID:0PR:1'.format(id, pr), serial)
print("ID value returned = " + match.group(1))
print("PR value returned = " + match.group(2))
#output
#AttributeError: 'NoneType' object has no attribute 'group'
【问题讨论】:
你到底想在这里做什么?您是否只是想查看字符串ID:11111PR:22222
是否是串行的子字符串?或者你想从序列号中提取这两个数字(即你不知道id
和pr
是什么,并想从serial
中提取它们)?
【参考方案1】:
您的正则表达式中没有组 (...)
,因此不会返回它们。像这样添加它们:
match = re.search(r'ID:(0)PR:(1)'.format(id, pr), serial)
【讨论】:
您好,先生,感谢您的回复。但是,在进行您建议的更改后,我仍然遇到相同的错误:AttributeError: 'NoneType' object has no attribute 'group'。看起来很奇怪以上是关于如何将多个变量传递给常规(re.search)表达式[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 中 re.search() 多个模式?
如何将表达式传递给使用 Sass 变量的 calc() mixin