[英]DTube url parser regex
请帮助为d.tube构建正则表达式,以从网址中提取channel_id
和video_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.