首页 > 解决方案 > 使用 findall regex python 3 问题查找字符串

问题描述

以下是网址列表。但是,我只想打印每个地址的主机名。

http://www.askoxford.com
http://www.hydrogencarsnow.com
http://www.bnsf.com
http://web.archive.org

预期结果:

askoxford.com
hydrogencarsnow.com
bnsf.com
web.archive.org

我的代码:

import re
import codecs
raw = codecs.open("D:\Python\gg.txt",'r',encoding='utf-8')
string = raw.read()
link = re.findall(r'www\.(\w+\.com|\w+\.org)',string)
print(link)

电流输出:

['askoxford.com', 'askoxford.com', 'hydrogencarsnow.com', 'bnsf.com']

截至目前的输出,它不包括 hostname.org。我不确定字符串前面的 reg 的 make OR 条件的方式。

我的尝试: link = re.findall(r'(http://www\.|http://)(\w+\.com|\w+\.org)',string),但它不起作用,因为它会收集带有主机名的 http...。

标签: regexpython-3.xfindall

解决方案


推荐阅读