匹配所有有效的RTSP URL,认证的URL规范是什么?

2024-09-30 05:29:38 发布

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

我当前的正则表达式如下:r"rtsp://\w+:\w+@[\w\.-]+"。我的编程语言是Python

但是,有些URL看起来像这样,并且不匹配:

rtsp://admin:fjs!hfk@my-cam.fritz.box/xxx/yyyy/1?transportmode=unicast

我可以将正则表达式更改为r"rtsp://\w+:[\w!]+@[\w\.-]+",以匹配!。我不在乎URL的结尾(/xxx/yyyy/1?transportmode=unicast

我的问题是有没有一个规范<user><password><hostname>可以是什么类型的字符?因为我可能不是什么都匹配。我一直在向\w添加字符,但我不想像我如何向密码添加!,向主机名添加-.这样的快速修复 有人可能在密码中有@吗?我也需要处理这个问题

稍后,我将添加提取用户、密码和主机名的捕获组


Tags: url密码adminmy字符编程语言xxx主机名
1条回答
网友
1楼 · 发布于 2024-09-30 05:29:38

不要在这里乱搞正则表达式,它已经为您完成了:

from urllib.parse import urlparse
obj = urlparse('rtsp://admin:fjs!hfk@my-cam.fritz.box/xxx/yyyy/1?transportmode=unicast')
print(obj)

这就产生了

ParseResult(scheme='rtsp', netloc='admin:fjs!hfk@my-cam.fritz.box', path='/xxx/yyyy/1', params='', query='transportmode=unicast', fragment='')

现在,您可以只使用以下属性:

print(obj.netloc)
# admin:fjs!hfk@my-cam.fritz.box

the help page for more information

相关问题 更多 >

    热门问题