我很难想出一个适用于这种情况的正则表达式。 我正在尝试使用pregmatch_all来捕获包含" 720.mp4"的引号之间的URL。导致网址没有双引号。
[{"file":"https:\/\/cw012.videohost.com\/files\/videos\/2017\/09\/18\/1505738417e8b76-720.mp4?h=33wg3l1i1G0XcJxvT82x7Q&ttl=1505769928",
最后我希望以上结果为
https:\/\/cw012.videohost.com\/files\/videos\/2017\/09\/18\/1505738417e8b76-720.mp4?h=33wg3l1i1G0XcJxvT82x7Q&ttl=1505769928
有什么想法吗?我是正则表达式的新手,我已经完成了我的阅读,但无法将我所阅读的内容用于此特定案例。
答案 0 :(得分:0)
作为一种简单的方法,您可以使用:
preg_match_all('#"([^"]*720\.mp4[^"]*)"#', $str, $m);
var_dump($m[1]);
步骤很简单。我们想要一个文字"
。然后我们打开一个捕获组((
),然后打开不是"
的任何内容,然后是文字字符串720.mp4
(带有转义点,因为.
有一个特殊的含义)。除"
之外的所有内容,关闭群组和最终"
。
$m[1]
是我们想要的捕获组的内容。 $m[0]
包含与引号的完整匹配。