У меня есть URL-адрес, который когда-нибудь меняет его положение
мои URL-адреса выглядят как
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/320x180/egCAExYQdRBw08fb.mp4
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/1280x720/GVsCGddpL9QoO4_B.mp4
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/640x360/33qcUEzFw-WS0inJ.mp4
В этих URL-адресах мне нужно извлечь «320x180», «1280x720», «640x360». Их еще много, и список можно продолжить.
Кроме того, ссылка меняется, например, иногда в URL-адресе нет / pu / vid / part. Я пробовал использовать функцию взрыва Php, но при изменении позиции. Их сложно найти. Например
https://video.twimg.com/ext_tw_video/640x360/pu/vid/841791481534803968/33qcUEzFw-WS0inJ.mp4
для постоянной части я использовал этот код
$breaker=(explode("/",$video->url));
$quality = $breaker[6];
Но поскольку они меняются местами и их ценности различаются. Есть ли другой подход к этому? Также, если значения остаются такими же, как я могу извлечь URL-адрес качества видео
например, если сценарий обнаружит, что качество составляет 1280x720, он даст мне URL-адрес и будет перебирать их, чтобы найти различные статические качества видео?
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/1280x720/GVsCGddpL9QoO4_B.mp4
Попробуйте (?<=/)\d{3,4}x\d{3,4}(?=/). См. Демо






Вы должны просто иметь возможность использовать preg_match() или preg_match_all() в регулярном выражении \d+x\d+, которое соответствует x, которому предшествует и за которым следует любое количество цифр.
preg_match("/\d+x\d+/", $input_line, $output_array);
preg_match_all("/\d+x\d+/", $input_lines, $output_array);
Это можно увидеть при работе с Regex101 здесь и PHPLiveRegex здесь.
Вы могли бы быть немного более конкретным и использовать (?<=/)\d{1,4}x\d{1,4}(?=/), который гарантирует, что в каждой группе будет от 1 до 4 цифр и что целевая строка заключена в два /, хотя это, вероятно, не нужно.
регулярное выражение для 3-4 цифр 'x' 3-4 цифры?