m0_67564865 2022-04-05 15:32 采纳率: 88.2%
浏览 28
已结题

请教一个关于正则表达式的问题

请问,如何用正则表达式将列表中的邮箱信息提取出?如下:

l1=['a', 'b', 'c', 'd', 'E-Mail:abcdefg@qq.com', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

如何将abcdefg@qq.com提出?

  • 写回答

2条回答 默认 最新

  • A-Chin 2022-04-05 16:36
    关注

    额外加了一个邮箱,都能提取:

    l1=['@', 'b', 'c', 'd', 'E-Mail:abcde123@qq.com', 'qr15@163.com', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
    
    str_mail = []
    for i in l1:
        # print i
        # 邮箱中含有'@',且不会出现在第一位,所以nPos > 0的满足条件
        nPos = i.find('@')
        if nPos > 0:
            # 邮箱有前缀和后缀
            # 后缀直接提取即可
            # 前缀中不得有特殊字符和空格
            # 也就是前缀中只能包含字母和数字
            fon = ""
            pos = i[nPos : len(i)] # 含有@
            for j in range(nPos - 1, 0, -1):
                if i[j].isdigit() or i[j].isalpha():
                    fon = i[j] + fon
                else:
                    break
            cur_email = fon + pos
            str_mail.append(cur_email)
    
    print str_mail
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月5日
  • 已采纳回答 4月5日
  • 创建了问题 4月5日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘