PHP preg_replace 不替换任何东西

PHP preg_replace not replacing anything

有人能告诉我为什么当我 运行 这段代码时 preg_replace 函数似乎什么都不做吗?

<?php
    $string     = 'waka http://video.webmfiles.org/big-buck-bunny_trailer.webm waka';
    $search     = '#http\:\/\/.\.webm #';
    $replace    = '<video width="320" height="240" controls><source src="" type="video/webm"></video>';
    $url = preg_replace($search,$replace,$string);
    echo $url;
?>

我的 $search 字符串错了吗?如果是这样,我该如何解决?假设要替换以 http:// 开始并以 .webm 结束的字符串,并用播放 .webm 视频所需的 html 代码包围它们。

我终于搞清楚了。我现在正在使用:

$search     = '#http:\/\/([^\']+)\.webm #';

以下是我的操作方式...

$string     = 'waka http://video.webmfiles.org/big-buck-bunny_trailer.webm waka';
$search     = '/(https?\:\/\/.+?\.webm)\h/';
$replace    = '<video width="320" height="240" controls><source src="" type="video/webm"></video> ';
$url = preg_replace($search,$replace,$string);
echo $url;

输出:

waka <video width="320" height="240" controls><source src="http://video.webmfiles.org/big-buck-bunny_trailer.webm" type="video/webm"></video> waka

Regex101 演示:https://regex101.com/r/qR1xJ7/2