这是我的正则表达式代码:
preg_match_all('/background[-image]*:[\s]*url\(["|\']+(.*)["|\']+\)/', $css, $matches, PREG_SET_ORDER);
它寻找如下所示的 CSS:
background:url('../blah.jpg');
我遇到的问题是我抓取的一些 CSS 看起来像这样:
background:transparent url('../blah.jpg');
background:transparent no-repeat url('../blah.jpg');
我不是正则表达式方面的专家,所以我想知道如何让它跳过冒号之后和 URL 之前的任何内容。
最佳答案
除非我跳过任何内容,否则应该会捕获所有图像。
preg_match_all('~\bbackground(-image)?\s*:(.*?)\(\s*(\'|")?(?<image>.*?)\3?\s*\)~i',$str,$matches);
$images = $matches['image'];
print_r($images);
关于php - 正则表达式:在背景图像 CSS 中查找 URL,遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893078/