2016-05-06 12 views
-1

Ich habe diese Frage - Capture group reference + numeralCapture Gruppe + Ziffer für PHP

Ich habe versucht, mit beiden Möglichkeiten, die dort zur Verfügung gestellt. Hier ist Beispielcode mit ECMAScript Ausdruck (Ich glaube, ich brauche diese zu verwenden, korrigieren Sie mich, wenn ich falsch bin) -

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

Erwartete Ausgabe

box.last_rollout_revision = 234 

Actual bekommen

34 

PS Ich versuche, Wert gegen einen Schlüssel in einer Konfigurationsdatei zu ersetzen, die mehrere andere Schlüssel-Wert-Paare hat. Ich denke, Regex wird es in diesem Fall einfacher machen. Korrigiere mich, wenn ich falsch liege.

Antwort

0

Ändern das Ersetzungsmuster zu

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

Siehe IDEONE demo

+0

@Sandeepan Nath einfach zu erklären - Ihr '$ replacementPattern' endete wie' 1234 $ $ 2' es für Capture-Gruppe suchen macht nicht. '1234'. – ClasG

+0

@Wiktor wenn ich das gleiche auf http://phptester.net/ versuche, gibt es mir die Ausgabe - 'abc', mit einem Hinweis -' HINWEIS Undefinierte Variable: 1 in Zeile Nummer 8' –

+0

Nur getestet und es erhielt ' box.last_rollout_revision = 234' –

Verwandte Themen