簡體   English   中英

DTube網址解析器正則表達式

[英]DTube url parser regex

請幫助為d.tube構建正則表達式,以從網址中提取channel_idvideo_id

以下網址可能

https://d.tube/v/channel_id/video_id
https://d.tube/#!/v/channel_id/video_id
https://emb.d.tube/#!/channel_id/video_id

這應該將它們分為兩組: https:\\/\\/(?:emb)?\\.?d.tube\\/v?(?:#!)?\\/?v?\\/?(\\w+)\\/(\\w+)

它首先匹配https然后匹配兩個正斜杠,這兩個斜杠需要\\轉義字符。

可選地,它獲取emb ,然后可選地一個. 然后d.tube ,可能是/v ,可能是#! ,可選的另一個/ ,可選的另一個v/然后是兩個捕獲組,它們使用字母數字字符,並用/分隔。

我已經發表了評論以解釋我的觀點,但是下面是您想要的兩種(可能!)不同版本:

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

然后,這將從URL中提取channel_id' and the video_id`: 注意:此答案是部分從此堆棧溢出答案中復制的如何在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生成的屏幕截圖(非常有用的實用程序) 在此處輸入圖片說明

雖然此處的解決方案將驗證您是否具有有效的“ d.tube” URL

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM