python - 即使在假定的正确匹配上,Python findall 也不会返回结果
问题描述
我试图从用户提供的输入中过滤掉链接。但是目前我在使用 Python 的 findall 时遇到了问题,因为它不返回任何结果。
正则表达式本身可能有一个错误,因为这不是我实际代码的一部分,我在另一篇文章中复制了它,但我试图用我目前对正则表达式的理解来检查它,并没有发现明显的问题。
这些是我试图过滤的示例链接:
https://ncs.io/symbolism , https://soundcloud.com/nocopyrightsounds/electro-light-symbolism-ncs-release , https://www.youtube.com/watch?v=__CRWE-L45k , https: //www.deezer.com/track/93333734?app_id=140685 , https://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())
推荐阅读
- vue.js - Vuejs 和页面刷新
点击 - http - 为什么 rxjs ajax 运算符返回一个 Observable?
- php - MYSQL/PHP 中只有一个日期时间列正在更新
- windows - 如何访问 docker 容器内的 localhost API?
- vim - 如何在 git bash commit 中保存退出 nvim
- oauth-2.0 - Auth0 checkSession 调用更新返回 HTML 错误页面
- c# - 选中如何根据单选按钮控制 ComboBox 的可见性
- docker - 如何安全地将连接字符串放入 heroku 中的 docker 容器中?
- python - 在没有 for 循环的情况下递增 i
- amazon-s3 - 如何使用 Lambda 函数将 Amazon RDS 数据库备份到 S3 存储桶