如何将多个变量传递给常规(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 是否是串行的子字符串?或者你想从序列号中提取这两个数字(即你不知道idpr是什么,并想从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

如何将表达式传递给使用 Sass 变量的 calc() mixin

python正则表达式里引入变量

如何将多个 PHP 变量传递给 jQuery 函数?

如何将多个变量传递给 Angular 2 中的组件?