正则表达式不断变化的东西

时间:2018-07-27 18:59:17

标签: php regex preg-match

我有这个内容,我想提取src的一部分:1080。问题是src部分在1080之前出现,并且有11080 src以上的部分。我想用regex扩展config_width“:1080的所有src。我该怎么办?我尝试使用get字符串之间的字符串,但由于750宽度部分不时更改,所以它不起作用。只有常数是config_width”:1080 < / p>

n.jpg","config_width":640,"config_height":640},{"src":"https://instagram.fbom11-1.fna.fbcdn.net/vp/4ccd16cba349973a390bc41275ad115e/5BF3C2A8/t51.2885-15/sh0.08/e35/s750x750/37256801_203159180380375_5976119398048464896_n.jpg","config_width":750,"config_height":750},{"src":"https://instagram.fbom11-1.fna.fbcdn.net/vp/16f84975e497c784cbfede0a85a3aac0/5BEF904D/t51.2885-15/e35/37256801_203159180380375_5976119398048464896_n.jpg","config_width":1080,"config_height":1080}],

我尝试的代码:

function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);   
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len); 
}

1 个答案:

答案 0 :(得分:0)

匹配src部分后,可以使用lookahead来对1080部分进行简单检查(URL将在名为组“ src”的匹配结果中):

src":"(?<src>[^"]+)",(?="config_width":1080)

regex101 demo