php pregmatch_all url,双引号之间的特定单词

时间:2017-09-18 20:40:13

标签: php regex

我很难想出一个适用于这种情况的正则表达式。 我正在尝试使用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

有什么想法吗?我是正则表达式的新手,我已经完成了我的阅读,但无法将我所阅读的内容用于此特定案例。

1 个答案:

答案 0 :(得分:0)

作为一种简单的方法,您可以使用:

preg_match_all('#"([^"]*720\.mp4[^"]*)"#', $str, $m);
var_dump($m[1]);

步骤很简单。我们想要一个文字"。然后我们打开一个捕获组((),然后打开不是"的任何内容,然后是文字字符串720.mp4(带有转义点,因为.有一个特殊的含义)。除"之外的所有内容,关闭群组和最终"

$m[1]是我们想要的捕获组的内容。 $m[0]包含与引号的完整匹配。