2016-12-06 2 views
0

ich eine Textzeichenfolge wie haben zu erhalten:ein regexp Muster benötigen eine TEFT zwischen Klammern

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; 

Wie kann ich nur den folgenden Text erhalten?

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

Wiederholt übereinstimmen 'Hintergrund: url \ ((. *) \) 'und dann Capture-Gruppe eins, um die URL zu erhalten. –

Antwort

0

Wenn Sie diesen Text genau übereinstimmen soll (wie Sie angeben), die Sie nicht regex brauchen:

$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'); 

Wenn Sie eine beliebige URL übereinstimmen soll:

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

Wenn Sie alle URLs übereinstimmen möchten:

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

Wird versuchen, danke! – sameuser