Regex youtube正则表达式可以工作,但需要改进
我现在有一个正则表达式,可以在纯文本youtube链接上成功运行Regex youtube正则表达式可以工作,但需要改进,regex,Regex,我现在有一个正则表达式,可以在纯文本youtube链接上成功运行 /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/ 所以它在这样的东西上工作-> http://www.youtube.com/watch?v=Y34jC4I1m70 但它失败的地方是检测到标签中的youtube链接 <a href='http://www.youtube.com/watch?v=Y34jC4I1m70'&g
/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/
所以它在这样的东西上工作->
http://www.youtube.com/watch?v=Y34jC4I1m70
但它失败的地方是检测到标签中的youtube链接
<a href='http://www.youtube.com/watch?v=Y34jC4I1m70'>http://www.youtube.com/watch?v=Y34jC4I1m70</a>
有什么方法可以让它同时捕捉到这两个字符吗?尝试删除前导字符。
然而,我想知道在这种情况下,.*应该起作用。但是为什么你需要一个新的。在youtube这个词的内部?你能给我们展示一个如何使用这个正则表达式的代码示例吗?一般来说,正则表达式是一种不好的标记语言方法。使用解析器,在正确的位置查找链接。不要使用正则表达式来解析HTML。使用适当的HTML解析模块。您无法用正则表达式可靠地解析HTML,在这条路上您将面临悲伤和挫折。一旦HTML改变了您的预期,您的代码就会被破坏。有关如何使用已编写、测试和调试的PHP模块正确解析HTML的示例,请参阅。