为了账号安全,请及时绑定邮箱和手机立即绑定

用于捕获#Facilitator:"Full Name <mail@mail.domain>"

用于捕获#Facilitator:"Full Name <mail@mail.domain>"

PHP
BIG阳 2023-05-26 17:27:15
请帮助正则表达式,语言可以是任何语言。我稍后会把它翻译成 python。我正在尝试构建一个正则表达式来捕获下面的标签:#Facilitator:"Full Name <mail@mail.domain>"全名可以带有重音符号,例如 José、Pâmela 或 ASCII 表中可用的任何符号。全名可以有 1、2 或 n 个姓氏。名称末尾可以有或没有“(公司名称)”:例如#Facilitator:"Name1 Name2 Name3 (Company Inc) <mail@domain>"标签可以在字符串中出现 0 次、1 次或 n 次。标签可以出现在字符串的任何地方。到目前为止尝试这样(python)但没有成功:import renotes = 'Verbal confirmation #Facilitator:"Fernas P. Loyola (YARDA LTDA) <ope@yahoo.com>"from ATUX with Melanie. Waiting for scheduling#Facilitator:"Fernandes <v-rrlo@stttr.de>" #Facilitator:"Pablito Ferdinandes <papa@gmail.com>"'facilitator_regex = '^.*((#Facilitator:".*"){1,}).*$'regex_replace = '\\1'print(re.sub(facilitator_regex, regex_replace, notes))我期望的输出是一个由空格分隔的 0、1 或更多#tags 的列表。对任何语言有帮助吗?我主要需要正则表达式本身的帮助。非常感谢。
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可以找到使用此正则表达式的所有促进者re.findall

'#Facilitator:"[^"]*"'

例如

facilitator_regex = '#Facilitator:"[^"]*"'
facilitators = re.findall(facilitator_regex, notes)

对于您的示例数据,这给出了

[
 '#Facilitator:"Fernas P. Loyola (YARDA LTDA) <ope@yahoo.com>"',
 '#Facilitator:"Fernandes <v-rrlo@stttr.de>"',
 '#Facilitator:"Pablito Ferdinandes <papa@gmail.com>"'
]

然后你可以用来str.join制作一个以空格分隔的列表:

print(' '.join(facilitators))

输出:

#Facilitator:"Fernas P. Loyola (YARDA LTDA) <ope@yahoo.com>" #Facilitator:"Fernandes <v-rrlo@stttr.de>" #Facilitator:"Pablito Ferdinandes <papa@gmail.com>"



查看完整回答
反对 回复 2023-05-26
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信