Python re.findall 之后返回带有不需要的字符串的链接

Python re.findall returning links with unwanted string afterwards

我有一个 python 脚本使用 BeautifulSoup 进行抓取。这是我的代码:

re.findall('stream:\/\/.+', link)

它旨在找到 link 如下:

stream://987cds9c8ujru56236te2ys28u99u2s

但它也 returns 像这样的字符串:

stream://987cds9c8ujru56236te2ys28u99u2s  [SD] Spanish - (9.15am)

即有空格和我不想要的额外东西。我该如何表达

re.findall

所以它只是 returns link 第一部分?

(提前致谢)

您可以使用非贪婪匹配(将 ? 添加到模式)和单词边界字符 '\b':

>>> re.findall(r'stream:\/\/.+?\b', link)
['stream://987cds9c8ujru56236te2ys28u99u2s']

或者如果你只想匹配单词字符,你可以简单地使用 '\w+':

>>> re.findall(r'stream:\/\/\w+', link)
['stream://987cds9c8ujru56236te2ys28u99u2s']