我當前的正則表達式如下所示r"rtsp://\w+:\w+@[\w\.-]+":我的編程語言是 Python。然而,有些 URL 看起來像這樣,但無法匹配:rtsp://admin:[email protected]/xxx/yyyy/1?transportmode=unicast我可以將正則表達式更改為r"rtsp://\w+:[\w!]+@[\w\.-]+"匹配!. 我不關心 URL 的結尾 ( /xxx/yyyy/1?transportmode=unicast)我的問題是是否有規范<user>,<password>和<hostname>可以是什么類型的字符?因為我可能無法匹配所有內容。我一直在向 中添加字符,\w但我不想繼續進行快速修復,例如我是如何!向密碼和-主機.名中添加的。有人可以@在密碼中輸入 a 嗎?我也需要處理它。我將在稍后階段添加提取用戶、密碼和主機名的捕獲組。
1 回答

喵喵時光機
TA貢獻1846條經驗 獲得超7個贊
不要在這里亂用正則表達式,它已經為你完成了:
from urllib.parse import urlparse
obj = urlparse('rtsp://admin:[email protected]/xxx/yyyy/1?transportmode=unicast')
print(obj)
這產生
ParseResult(scheme='rtsp', netloc='admin:[email protected]', path='/xxx/yyyy/1', params='', query='transportmode=unicast', fragment='')
現在,您可以只使用屬性:
print(obj.netloc)
# admin:[email protected]
添加回答
舉報
0/150
提交
取消