我是python新手,我在研究假新闻检测算法,我在从url中提取站点名称时遇到问题

2024-05-16 13:20:06 发布

您现在位置:Python中文网/ 问答频道 /正文

text = 'https://www.nytimes.com/2017/10/09/us/politics/corkers-blast-at-trump-has-other-republicans-nodding-in-agreement.html?rref=collection%2Fsectioncollection%2Fpolitics\r\n'

test = re.findall(r"^http* com$",text)

结果:

test = [ ]

我期望的输出如下所示:

www.nytimes.com

Tags: texthttpstestcomwwwatushas
3条回答

这将匹配http或https以及任何类型的域(.gov.us、.com.de、.edu…)

test = re.findall(r"^http.*\:\/\/(.*?)\/",text)

^http=从http开始

"^http.*=将匹配http或https

\:\/\/=escape://

(.*?)=匹配组a.k.a您想要的内容(没有?将匹配到最后一个/

\/=第一次出现“/”

你的正则表达式模式是错误的。模式中不应该有任何空格,用.*替换*,并避免最后用$锚定正则表达式。试试这个

>>> re.findall(r"^http.*?com", text)
['https://www.nytimes.com']

您也可以尝试以下方法:

test = re.findall(r"www.+com",text)

输出:

['www.nytimes.com']

相关问题 更多 >