Regex是一种不断变化的东西



我有这个内容,我想提取src:1080的部分。问题是src部分在1080之前,并且有超过1080的src部分。我想用regex来extact config_width":1080的所有src。我怎么能做到呢?我试过在两者之间使用get字符串,但它不起作用,因为750宽度的部分偶尔会变化。唯一不变的是config_widght":1080

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); 
}

在匹配src部件后,您可以使用前瞻来对1080部件进行简单检查(url将在名为group"src"的匹配结果中(:

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

regex101演示

相关内容

最新更新