python - 使用Python通过正则表达式访问Web数据不起作用

标签 python regex whitespace

我正在为 Coursera 上的每个人的类(class)编写 Python,所以我刚刚学习了如何使用 Python 从 Web 访问文件。

所以我在这里想做的是从以 From: 开头的行中提取电子邮件:但我什么也没得到。

行中存在以 From: 开头的电子邮件,因为我已经使用文件处理方法完成了此操作,但当我在服务器上的文件上尝试它时它不起作用,所以我猜它是处理空白。

无论如何,伙计们,帮帮我,我被困住了

import socket
import re
dic = dict()
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    mysock.connect(('data.pr4e.org', 80))
except:
    print("Can't find the server.\nCheck your internet Connection")
cmd = 'GET http://data.pr4e.org/mbox-short.txt HTTP/1.0\r\n\r\n'.encode()
try:
    mysock.send(cmd)
except:
    print("Connection Lost:\nCheck your Internet Connection")
while True:
    data = mysock.recv(512)
    if len(data)  < 1:
        break
    data = data.decode()
    data = data.rstrip()
    k = re.findall('^From:.(\S+@\S+)', data)
    if (len(k)) > 0:
        print(k)

This is the Link from where you can download the file

最佳答案

您可以使用以下方式获取电子邮件

k = re.findall(r'(?m)^From:\s*(\S+@\S+)', data)

请参阅regex demo .

详细信息

  • (?m)^ - 行首
  • 来自: - 文字字符串
  • \s* - 0+ 个空格
  • (\S+@\S+) - 捕获组 1(re.findall 的输出将仅包含此值):一个或多个非空白字符, @ 和一个或多个非空白字符。

关于python - 使用Python通过正则表达式访问Web数据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62162387/

相关文章:

python - python中的多线程是一个神话吗?

python - 如何在Pandas数据框中的其他列中填充基于新列的值

javascript - 如何使用正则表达式清理 HTML 中的 for 循环?

emacs - 如何删除 Emacs 中的空格和回车符?

elasticsearch - ElasticSearch使用空格搜索带连字符的文本,而不是查询中的破折号

python - 初学者尝试调试简单的程序

python - ZeroMQ 2 REQ/REP 以允许嵌套对话

regex - R strsplit之前(和之后)保留两个分隔符

具有非捕获组的 JavaScript RegEx 表现出令人困惑的行为

java - java bash路径中的空格