我想检查是否$url
的内容v=
后包含https://youtube.com/watch?
任何地方。
示例输出(注意到v=
本和缺失的实例):
> https://youtube.com/watch?list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&v=apdJBcDF6vA&index=2
URL allowed.
> https://youtube.com/watch?list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&index=2
URL NOT allowed.
> https://youtube.com/watch?v=apdJBcDF6vA
URL allowed.
> https://youtube.com/v=apdJBcDF6vA
URL NOT allowed.
> https://youtube.com/watch?v=apdJBcDF6vA&list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz&index=2
URL allowed.
> https://youtube.com/watch?v=apdJBcDF6vA&list=PL3O9DAQHAxSTXqOH5VV6DO0BBupZ4feqz
URL allowed.
> https://youv=tube.com/watch?v=apdJBcDF6vA
URL NOT allowed.
> v=https://youtube.com/watch?v=apdJBcDF6vA
URL NOT allowed.
我会尝试一些代码来测试,但老实说,我不知道用什么。
操作系统是MacOS的高塞拉利昂10.13.6和bash
版本是3.2.57(1)-release
内双括号中,==
运营商支持的水珠:
if [[ $url == 'https://youtube.com/watch?'*v=* ]]
如果你想要的是获得视频ID,这是相当简单的事情,实现了正则表达式。见How do I get the YouTube video ID from a URL?或尝试google搜索“正则表达式来获得YouTube视频ID”
如果你不知道的话,可以考虑使用youtube-dl
的部分,他们可以分析每一个可能的网址,并有更多的工具做很多事情。