我想检查$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.
我会尝试一些代码进行测试,但老实说,我不确定该使用什么。
OS是macOS High Sierra 10.13.6,bash
版本是3.2.57(1)-发行版
答案 0 :(得分:1)
在双方括号中,==
运算符支持glob:
if [[ $url == 'https://youtube.com/watch?'*v=* ]]
答案 1 :(得分:1)
如果您要获取视频ID,则使用正则表达式即可轻松实现。请参见How do I get the YouTube video ID from a URL?或尝试使用Google搜索“正则表达式以获取youtube视频ID”
如果您不知道,请考虑使用youtube-dl
的各个部分,它们可以解析每个可能的URL,并具有执行许多操作的更多工具。