首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕捉#促进者:“全名<mail@mail.domain>”标记

捕捉#促进者:“全名<mail@mail.domain>”标记
EN

Stack Overflow用户
提问于 2020-06-13 23:19:11
回答 1查看 34关注 0票数 0

请帮助的正则表达式,该语言可以是任意的。稍后我将把它翻译成python.

我试图构建一个正则表达式来捕获下面的标记:

代码语言:javascript
复制
#Facilitator:"Full Name <mail@mail.domain>"

  • 全名可以带有重音,如José、P mela,也可以在ASCII表中使用。
  • 全名可以有1、2或n个姓氏。名称末尾可能有或没有“(Comapny Name)”:类似于#Facilitator:"Name1 Name2 Name3 (Company Inc) <mail@domain>"
  • The标记可以在字符串中出现0、1或n次。
  • 标记可以出现在字符串的任何位置。

到目前为止,这样的尝试(python)没有成功:

代码语言:javascript
复制
import re

notes = '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或更多#标记的列表。

有什么语言方面的帮助吗?我需要帮助,主要是在大梁本身。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-13 23:32:36

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

代码语言:javascript
复制
'#Facilitator:"[^"]*"'

例如:

代码语言:javascript
复制
facilitator_regex = '#Facilitator:"[^"]*"'
facilitators = re.findall(facilitator_regex, notes)

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

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

然后,您可以使用str.join创建一个空格分隔的列表:

代码语言:javascript
复制
print(' '.join(facilitators))

输出:

代码语言:javascript
复制
#Facilitator:"Fernas P. Loyola (YARDA LTDA) <ope@yahoo.com>" #Facilitator:"Fernandes <v-rrlo@stttr.de>" #Facilitator:"Pablito Ferdinandes <papa@gmail.com>"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62366650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档