我有一份与类似模式相匹配的电子邮件列表:
chris-repo-nonprod red-sens@mail.com
ryan-prod-blue-sens@mail.com
第一封电子邮件有5个部分,第二个部分在@mail.com之前有4个部分(用连字符标记)
我需要提取在组邮件的非prod/prod部分之后出现的group_code。
例如,chris-repo-nonprod red -sens@mail.com,我需要提取红色,
对于ryan-prod sens@mail.com,我需要提取蓝色。
组代码之前的部分将始终是prod或nonprod,而且在组代码之前始终有减去"prod-“的内容。
如何从有不同数量的电子邮件中提取组代码以始终获取组代码?
发布于 2022-10-25 14:00:32
re.findall('(?:prod-)(.*)-', s)df['group'] = df['col2'].str.extract('(?:prod-)(.*)-' )
df col1 col2 group
0 1 chris-repo-nonprod-red-sens@mail.com red
1 2 ryan-prod-blue-sens@mail.com blue
2 3 NaN发布于 2022-10-25 14:07:39
使用寻找与发现
email2 = 'ryan-nonprod-blue-sens@mail.com'
email = 'chris-repo-nonprod-red-sens@mail.com'
start = 'prod-'
start2= 'nonprod-'
end = '-'
print( (email[email.find(start or start2)+len(start or start2):email.rfind(end)]))
print("\n")输出
red发布于 2022-10-25 15:15:49
这应该是可行的
(?<=prod-)[a-z]+基于我们拥有的输入数据
chris-repo-nonprod-red-sens@mail.com
ryan-prod-blue-sens@mail.com注意到在搜索字符串前面总是有nonprod或prod,我们可以使用regexp断言。在本例中,正向后向断言(?<=prod-)中,我们定义在任何单词a-z+之前寻找prod-。
注意:断言不是结果的一部分。
https://stackoverflow.com/questions/74195244
复制相似问题