REGEX:替换两个字符串之间的所有内容,但不替换开始/结束字符串

时间:2012-10-10 17:25:18

标签: php regex

我不是最好的RegEx ...我有一些PHP代码:

$pattern = '/activeAds = \[(.*?)\]/si';
$modData = preg_replace($pattern,'TEST',$data);

所以我有一个JavaScript文件,它声明和数组:

var activeAds = [];

我需要这个用我的字符串填充数组,或者如果数组中已经有一个字符串,我想用我的字符串替换它(在本例中为“TEST”)。

现在,我的REGEX正在取代所有内容,包括我的开始和结束,我只需要替换它们之间的什么。

我离开了:

var TEST;

TIA

2 个答案:

答案 0 :(得分:2)

您可以捕捉之前的内容以及您想要替换的部分之后的内容:

$pattern = '/(activeAds = \[).*?(\])/si';

捕获这些部件后,您可以保留它们并替换中间的部件:

$modData = preg_replace($pattern, '\1TEST\2', $data);

答案 1 :(得分:0)

有很多方法可以做到这一点,我的下面是:

$data    = array("activeAds = testing123");
$pattern = "/activeAds\s?=\s?(.*)/";
$result  = preg_replace($pattern,"activeAds = TEST", $data);
var_dump($result);

编辑:忘记提及此处\s?允许可选空格。