dal*_*len 6 php regex screen-scraping
这是我的正则表达式代码:
preg_match_all('/background[-image]*:[\s]*url\(["|\']+(.*)["|\']+\)/', $css, $matches, PREG_SET_ORDER);
Run Code Online (Sandbox Code Playgroud)
它查找看起来像这样的CSS:
background:url('../blah.jpg');
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我刮的一些CSS看起来像这样:
background:transparent url('../blah.jpg');
background:transparent no-repeat url('../blah.jpg');
Run Code Online (Sandbox Code Playgroud)
当谈到正则表达式时,我不是专家,所以我想知道我怎么能告诉它在冒号后和URL之前跳过任何东西.
inh*_*han 16
除非我跳过任何东西,否则应该捕获所有图像.
preg_match_all('~\bbackground(-image)?\s*:(.*?)\(\s*(\'|")?(?<image>.*?)\3?\s*\)~i',$str,$matches);
$images = $matches['image'];
print_r($images);
Run Code Online (Sandbox Code Playgroud)