Строка содержит:
#EXT-X-STREAM-INF:BANDWIDTH=1439890,RESOLUTION=640x480,CODECS="avc1.42001f,mp4a.40.2"
Порядок пар ключ-значение не является постоянным.Примеры:
#EXT-X-STREAM-INF:BANDWIDTH=1439890,RESOLUTION=640x480,CODECS="avc1.42001f,mp4a.40.2"
#EXT-X-STREAM-INF:RESOLUTION=640x480,BANDWIDTH=1439890,CODECS="avc1.42001f,mp4a.40.2"
#EXT-X-STREAM-INF:CODECS="avc1.42001f,mp4a.40.2",RESOLUTION=640x480,BANDWIDTH=1439890
Как получить значения в непостоянной позиции пар, используя одно регулярное выражение?Этот пример для постоянной позиции пар:
my $str = '#EXT-X-STREAM-INF:BANDWIDTH=1439890,RESOLUTION=640x480,CODECS="avc1.42001f,mp4a.40.2"';
if ($str =~/#EXT-X-STREAM-INF:BANDWIDTH=(?'bandwidth'.+?),RESOLUTION=(?'resolution'.+?),CODECS="(?'codecs'.+?)"$/) {
say $+{bandwidth};
say $+{resolution};
say $+{codecs};
}