即使假设正确匹配,Python findall 也不会返回结果

问题描述

我试图从用户提供的输入中过滤掉链接。但是目前我在使用 Python 的 findall 时遇到了问题,因为它不返回任何结果。

正则表达式本身可能有错误,因为它不是我实际代码的一部分,我在另一篇文章中复制了它,但我试图用我目前对正则表达式的理解来检查它,但没有发现明显的问题.

这些是我试图过滤的示例链接

https://ncs.io/symbolismhttps://soundcloud.com/nocopyrightsounds/electro-light-symbolism-ncs-releasehttps://www.youtube.com/watch?v=__CRWE-L45khttps://www.deezer.com/track/93333734?app_id=140685https://open.spotify.com/album/1BxVIZuG2N1ReBB0T5nVTr?highlight=spotify:track:2zVJlAEB0ublkqJMIn43AE

为了得到结果,我使用了一个应该直接返回结果的简单函数

def get_urls():
    # Gets urls from the provided string
    urls = input("Stream urls: ")
    urls = findall(r'(https?://[^\s]+)',urls)
    return urls

然后我正确调用

if __name__ == '__main__':
    print(get_urls())

我只从 re 导入 findall,因为这是我唯一使用的部分:

from re import findall

在这个小代码中没有什么可以破解的,我自己对我搞砸的地方感到非常困惑。如果您看到我的错误,请帮助我!感谢您对此的任何帮助!

解决方法

它对我有用

from re import findall

def get_urls():
    # Gets urls from the provided string
    urls = input("Stream urls: ")
    urls = findall(r'(https?://[^\s,]+)',urls)
    return urls

if __name__ == '__main__':
    print(get_urls())