正则表达式:检索匹配的模式

2024-10-01 02:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从邮件列表中推断出模式,看看邮件id是否符合名字。姓氏或者姓氏.firstname图案。我可以通过使用“or”和下面可能的模式来匹配电子邮件

re.match("|".join([regex_pat1, regex_pat2]), email)

一旦我得到一个匹配,我怎么知道哪个正则表达式模式字符串从列表匹配的目标电子邮件?你知道吗

编辑:示例

import re
email = "sam.rohn@gmail.com"

patt = ["sam.rohn@gmail.com", "rohn.sam@gmail.com"]

re.match("|".join(patt), email)

这给了我一个匹配的对象 <_sre.sre\u匹配对象;span=(0,30),match='山姆·罗恩@gmail.com'>

我想知道的是,我的“patt”列表中哪一个模式匹配


Tags: recom列表电子邮件emailsammatch模式
2条回答

可以使用圆括号括起模式,并用匹配组标识匹配项,如中所示

patt = ["(sam\.rohn@gmail\.com)", "(rohn\.sam@gmail\.com)"]

here

老实说,你的问题把我弄糊涂了,因为如果你匹配成功,那么模式应该等于email。你可以检查一下名字。姓氏或者姓氏.firstname模式通过print(email in patt),因为你有emailpatt。你知道吗

在正则表达式中,.将匹配除行终止符(\n)之外的所有字符。如果只想匹配.,则添加反斜杠\.[.]#(not recommended)

相关问题 更多 >