繁体   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