为什么我的python中的findall方法返回元组中电子邮件地址用户名的最后一个字符?

问题描述

import pyperclip
import re
searchItems=pyperclip.paste()
phoneRegex= re.compile(r"(\(\d\d\d\))?\s?(\d\d\d)(-?)(\d\d\d\d)")
print(phoneRegex.findall(searchItems))
emailRegex= re.compile(r"((\w|\.|-)+)(@)(\w+)(\.)(com|org|gov|net)")
print(emailRegex.findall(searchItems))

这就是复制到我的键盘上的内容

Christen E. Alvarez     (972) 786-4438  christenalvarez1@gmail.com
    
Laura Anderson      (940)665-0605   womens-health@sbcglobal.net
    
Alana Andrews       (512) 891-0420  cocosalonaustin@yahoo.com
    
Cynthia Lou Andrews     (572)343-7546   cindy@beautifulsolutionstexas.com

所以当我运行时,我得到的输出是:

[('(972)','786','-','4438'),('(940)','665','0605'),('(512)','891','0420'),('(572)','343','7546')]
[('christenalvarez1','1','@','gmail','.','com'),('womens-health','h','sbcglobal','net'),('cocosalonaustin','n','yahoo',('cindy','y','beautifulsolutionstexas','com')]

我的问题是,为什么在emailRegex findall列表中,每个元组中的第二个元素是电子邮件用户名中的最后一个字符?

此外,如何在phoneRegex findall列表中确保元组中返回的第三个元素不是连字符?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)