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']
我有一个 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']