python - 用于将电子邮件与选定域匹配的正则表达式

标签 python regex

我想列出所有电子邮件地址:

dane[(dane.imie == "Rhea") & (dane.email == "[*]@ubusive.com")]

下面的代码对我有用:

dane[(dane.imie == "Rhea") & (dane.email == "Rhea_Whitehouse7703@ubusive.com@ubusive.com")]

所以我尝试使用类似这样的内容更改确切的地址 Rhea_Whitehouse7703@ubusive.com(来自生成器的虚假电子邮件地址)[*]

我通过添加正则表达式解决了这个问题,但我需要知道如何实现简单的解决方案,提前谢谢您!

最佳答案

我不能百分百确定您在寻找什么,但是,据我了解,您想要提取具有指定 imie(例如“Rhea”)和以“@ubusive”结尾的电子邮件的数据帧行。 com'(无论其前面是什么)。

因此在这种情况下(让我们生成一个示例数据帧):

import pandas as pd

dane = pd.DataFrame({'imie' : ['Rhea', 'Rhea', 'Bob', 'Rhea'],
                     'email': ['Rhea_Whitehouse7703@ubusive.com',
                               'Rhea_Whitehouse7703@ubusive.com@ubusive.com',
                               'Bobbybear@ubusive.com',
                               'Rhea_Whitehouse7703@other.com']})

丹麦人是:

    imie    email
0   Rhea    Rhea_Whitehouse7703@ubusive.com
1   Rhea    Rhea_Whitehouse7703@ubusive.com@ubusive.com
2   Bob     Bobbybear@ubusive.com
3   Rhea    Rhea_Whitehouse7703@other.com

你只想要第 0 行和第 1 行。 如果您的域名始终是“ubusive.com”,一个简单的方法是:

dane[(dane.imie == "Rhea") & (dane.email.str[-12:] == "@ubusive.com")]

这将给出:

    imie    email
0   Rhea    Rhea_Whitehouse7703@ubusive.com
1   Rhea    Rhea_Whitehouse7703@ubusive.com@ubusive.com

如果您只想要最后一个域(最后一个“@”之后的域),正则表达式可能会更有用。 这...

search_string = "@ubusive.com"
dane[(dane.imie == "Rhea") & (dane.email.str.extract("(@.*)")[0] == search_string)]

...将导致这样的结果:

    imie    email
0   Rhea    Rhea_Whitehouse7703@ubusive.com

并且还可以自由地轻松更改域名的搜索字符串。

希望这对您有所帮助,或者,如果这不是您想要的,请发表评论。

关于python - 用于将电子邮件与选定域匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55963753/

相关文章:

python - 将图 "caracteristics"从一个类复制到另一个类

正则表达式取代乱码

c# - 正则表达式替换不同种类的单引号

Python - 在单词后拆分句子但结果最多为 n 个字符

javascript - 这个 javascript 正则表达式代码在处理 URLS 时做了什么?

python - 从 pandas 数据框中获取符号

python - 如何在 tkinter 中将文本标签居中?

python - TQDM 和多处理 - python

python - 无法直接从 Github 在 Google Colab 中安装 Sk-learn (scikit-learn)

python - 如何使用嵌套字典替换其他列中的字符串