2017-03-29 37 views
1

我试图建立一个成功捕获以下黑体字正则表达式封闭:捕捉一切由括号

背景图像:网址( https://domain/adress/with/other/stuff?alsoaquerystring=whynot);

预期成果是:

https://domain/adress/with/other/stuff?alsoaquerystring=whynot

这是我到目前为止已经试过,但我不能设法说:“捕捉一切这里面在这里,无论它得到了什么样的人物“。

/background-image: url\((?P<image>)+\)/; 

它需要用PHP preg_replace()兼容。

+1

使用'背景图像:(?(P [^)] +)网址\ \)'。什么是预期的输出? –

+0

添加了预期的输出。 – GiamPy

+0

我不认为你需要一个命名捕获组,只需使用一个编号(在PHP preg_replace中,你不能在*字符串*替换模式中使用命名的反向引用)。请参阅http://ideone.com/lHqXFZ。 –

回答

0

您可以使用:

background-image: url\((.*?)\); 

使用()要创建在正则表达式捕获组。

https://regex101.com/r/VNsTPU/1/为例。这是一个非常基本的例子,您可以改进以去除括号之间的空白或在完成后修剪。

请参阅this answer关于在PHP中使用捕获组,如果您不熟悉。

更新:如果你正在尝试做它用preg_replace这是你会怎么做:

$regex = = 'background-image: url\((.*?)\);'; 
$var = 'background-image: url(https://domain/adress/with/other/stuff?alsoaquerystring=whynot)'; 
preg_replace($regex,'$1',$var);