2016-05-06 57 views
-1

我提到这个问题 - Capture group reference + numeral捕获组+数字为PHP

我试着用这两个选项。下面是使用ECMAScript表达式示例代码(我想我需要用这个,纠正我,如果我错了) -

$string = "box.last_rollout_revision = dummy"; 

$regex = "/(box\.last_rollout_revision[\s]*=[\s]*)[a-z0-9-_]*([\n]*)/"; 

$test = "234"; 
$replacementPattern = "$1".$test."$2"; 

echo preg_replace($regex,$replacementPattern,$string); 

预计输出

box.last_rollout_revision = 234 

实际获得

34 

PS我正试图用一个配置文件中的一个关键字替换其他值,这个文件有几个其他的键值对。我认为在这种情况下,正则表达式会更容易。纠正我,如果我错了。

回答

0

更改替换模式,以

$replacementPattern = '${1}'.$test.'$2'; 

IDEONE demo

+0

@Sandeepan纳特只是解释 - 你的'$ replacementPattern'弄成'$ 1234 $ 2'使其搜索捕获组没有。 '1234'。 – ClasG

+0

@Wiktor当我在http://phptester.net/上尝试时,它给了我输出 - 'abc',并附有通知 - 'NOTICE未定义的变量:第8行上的' –

+0

刚刚经过测试并获得' box.last_rollout_revision = 234' –