2016-12-06 109 views
0

之间的TEFT我有一个文本字符串,如:需要一个正则表达式模式来获得括号

background:url(//img.website.com/asd/asd/i3/1746380416/TB2KDVEXfSM.eBjSZFNXXbgYpXa_!!1746380416.jpg_40x40q90.jpg) center no-repeat; 
background:url(//img.website.com/asd/asd/i3/1746380416/TB2RR8FXmiK.eBjSZFDXXbxZVXa_!!1746380416.jpg_40x40q90.jpg) center no-repeat; 
background:url(//img.website.com/asd/asd/i1/1746380416/TB2lHCuaOKO.eBjSZPhXXXqcpXa_!!1746380416.jpg_40x40q90.jpg) center no-repeat; 

我怎么能得到的只有下面的文字?

//img.website.com/asd/asd/i3/1746380416/TB2KDVEXfSM.eBjSZFNXXbgYpXa_!!1746380416.jpg_40x40q90.jpg 
+1

重复匹配'background:url \((。*)\)'然后使用捕获组1来获取URL。 –

回答

0

如果你想匹配的确切文字(如你的状态),则不需要正则表达式:

$match = strpos('//img.website.com/asd/asd/i3/1746380416/TB2KDVEXfSM.eBjSZFNXXbgYpXa_!!1746380416.jpg_40x40q90.jpg', $your_test); 
if($match !== false) 
    echo('The string was found'); 

如果你想匹配任何网址:

preg_match("/(background:url\()(.*?)(\))/", $your_text, $matches); 
var_dump($matches[2]); 

如果要匹配所有网址:

preg_match_all("/(background:url\()(.*?)(\))/", $your_text, $matches); 
foreach($matches[2] as $match) 
    var_dump($match[2]); 
+0

试试吧,谢谢! – sameuser