DTube URL анализатор регулярных выражений

1

Пожалуйста, помогите построить регулярное выражение для d.tube извлечь channel_id и video_id из URL

Возможны следующие URL-адреса

https://d.tube/v/channel_id/video_id
https://d.tube/#!/v/channel_id/video_id
https://emb.d.tube/#!/channel_id/video_id
  • 0
    Причина Ваш вопрос не действительно выяснить , что вы хотите, потому что примеры / образцы, которые перечислены все включают точные текстовые фразы channel_id и фразы video_id я не могу сделать вывод , что вы хотите сделать. Одна версия будет извлекать канал и идентификатор видео, но другая версия будет проверить , что фразы ( channel_id и video_id ) всегда присутствуют. Что вы хотите получить от своего рег-экс?
  • 0
    @RalphTorello, прости! Мне действительно нужно извлечь channel_id и video_id из URL
Теги:

2 ответа

1

Я написал комментарий, чтобы объяснить свою точку зрения, но вот две (возможные!) Разные версии того, что вы хотели бы:

https:\/\/(?:\w+\.)?d.tube\/.*?\/([^\/]*)\/([^\/]*)\n

И тогда это будет извлекать channel_id channel_id' and the video_id из URL: ПРИМЕЧАНИЕ. Этот ответ частично скопирован из этого ответа на переполнение стека: как вы получаете доступ к сопоставленным группам в регулярном выражении JavaScript?

var myString = myURL;
var myRegexp = /https:\/\/(?:\w+\.)?d.tube\/.*?\/([^\/]*)\/([^\/]*)\n/g;
var match = myRegexp.exec(myString);
console.log("Channel ID: " + match[0] + "\n" + "Video ID:" + match[1] + "\n");

Вот захват экрана, созданный http://regexr.com (довольно полезная утилита) Изображение 174551

Хотя это решение здесь проверит, что у вас есть действительный URL-адрес "d.tube"

https:\/\/(?:\w+\.)?d.tube\/.*?\/channel_id/video_id\n
var myString = myURL;
var myRegexp = /https:\/\/(?:\w+\.)?d.tube\/.*?\/channel_id/video_id\n/;
var match = myRegexp.exec(myString);
var isMatch = match != null;
1

Это должно учесть их две группы: https:\/\/(?:emb)?\.?d.tube\/v?(?:#!)?\/?v?\/?(\w+)\/(\w+)

Сначала он отображает https затем две косые черты, которые требуют символа \ escape.

По желанию, он получает emb, то необязательно . затем d.tube, необязательно /v, необязательно #! , необязательно другой /, необязательно другой v и / затем две группы захвата, которые принимают буквенно-цифровые символы, разделенные на /.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню