2
因此,我在WordPress环境中的youtube链接周围添加了[embed] [/ embed],因为如果你在后端的内容输入使用不同的字段而不是normale内容编辑器,牛逼自动执行此操作(即使你apply_filter the_content)正则表达式前面没有href =“
所以,我发现这个正则表达式这对我的应用程序运行完美。
$firstalinea = preg_replace('/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i', '[embed]https://www.youtube.com/watch?v=$2[/embed]', $firstalinea);
除了一件事如果有人放置一个链接到YouTube-。视频,而不是想嵌入它,它也取代,然后链接不再工作。
<a href="https://youtu.be/xxxxxx">Link</a>
那么,如何使正则表达式不工作,如果前面有href =“?
谢谢!
做一个测试用的preg_match,看看它前面有一个href – clearshot66
会怎么做呢? – TonyPartyHardy
我也得到了这个与正则表达式测试器一起工作的东西,但是会抛出php7错误: '(?<!href = \“)(http:\/\/| https:\/\ /)(?: www \ ?)youtu(be.com \ /观看\ v = | .BE \ /)([A-ZA-Z0-9 \ -_] +)([A-ZA-Z0-9 \/\ * \ - ('):未知的修饰符'('') – TonyPartyHardy