Создайте регулярное выражение в python, сопоставьте все URL-адреса hls - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть регулярное выражение для соответствия всем URL-адресам m3u8

(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#,?&*//=]*)(.m3u8)\b([-a-zA-Z0-9@:%_\+.~#,?&//=]*))

Это регулярное выражение сопоставляет все URL-адреса m3u8 с доменом, например: https://mydomain.example/hls/playlist.m3u8

Но в некоторых случаях нужно сопоставить URL-адрес с именем хоста в качестве IP-адреса, например, http://192.168.1.199:8001/hls/playlist.m3u8

Я нахожу регулярное выражение только для сопоставления IP. Как я могу объединить регулярное выражение, чтобы соответствовать всем видам URL HLS, даже если он использует имя хоста или IP

Спасибо

1 Ответ

2 голосов
/ 27 апреля 2019

Я бы предложил использовать urllib.parse.urlparse для этого.

from urllib import parse

p1 = parse.urlparse('https://mydomain.example/hls/playlist.m3u8')
print(p1.netloc)
print(p1.path)
#mydomain.example
#/hls/playlist.m3u8
p2 = parse.urlparse('http://192.168.1.199:8001/hls/playlist.m3u8')
print(p2.netloc)
print(p2.path)
#192.168.1.199:8001
#/hls/playlist.m3u8

Именованный кортеж, возвращенный из этой функции, также дает вам другую информацию. например,

print(p1)
#ParseResult(scheme='https', netloc='mydomain.example', path='/hls/playlist.m3u8', params='', query='', fragment='')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...