gpt4 book ai didi

python - 正确地将名字映射到电子邮件?

转载 作者:行者123 更新时间:2023-11-28 22:49:54 25 4
gpt4 key购买 nike

我正在做一个研究项目,我有一个大约有 200 个名字和 6 个电子邮件地址的列表。要求是按照以下要求将这些电子邮件中的每一封映射到一个电子邮件地址:

“以 A、B、C、D、E 开头的名称将映射到电子邮件 1。F、G、H、I、J 将映射到电子邮件 2”等等。

现在我正在想办法将这些名称映射到特定的电子邮件,格式为“如果 nameA-E 开头,则 email1 ,而不是遍历所有名称并检查每个名称的起始字母。有没有办法做到这一点?我认为 RegEx 可能会有所帮助,但不确定具体如何(可能类似于^[a-eA-E]?)

最佳答案

re 模块有一个未记录的 Scanner class可用于将任意函数调用附加到正则表达式模式。当调用 Scanner.scan 方法时,提供的文本与每个正则表达式模式进行匹配,并在找到匹配项时调用关联的函数。当剩余的文本不匹配任何模式时,扫描方法结束。

import re

def make_email(i):
def email(scanner, token):
print('{t}: Send to email{i}'.format(t=token, i=i))
return email

scanner = re.Scanner(
[(pat, make_email(i)) # 2
for i, pat in enumerate((r"^[a-e]\w+", r"^[f-j]\w+"))] # 1
+ [(r"\s+", None)],
flags=re.IGNORECASE|re.MULTILINE)

scanner.scan("""\
Albert
Barry
Carrie
David
Erin
Franklin
Geoff
Harold
Isadore
Jay""")

打印

Albert: Send to email0
Barry: Send to email0
Carrie: Send to email0
David: Send to email0
Erin: Send to email0
Franklin: Send to email1
Geoff: Send to email1
Harold: Send to email1
Isadore: Send to email1
Jay: Send to email1

  1. 您可以在此处添加更多正则表达式模式。
  2. Scanner 类使用 2 元组列表进行初始化。每个二元组由正则表达式模式和关联的回调组成功能。

关于python - 正确地将名字映射到电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com