Kleines PHP Skript Problem mit regex()

1SOL

Grünschnabel
Hallo,

habe folgende 3 Zeilen die nicht funktionieren wollen :)

PHP:
$regex = '(\"go:[^ "]+) ([^ "]+\">)'; 
ereg_replace($regex, "_", $data); 
echo $data;

Beispiel:
$data -> Dies ist ein Beispieltext und soll aus "go:xxx xxx" das Leerzeichen zwischen den
durch einen Unterstrich ersetzen _. Zu beachten ist jedoch, das die xxx an 1. sowie 2. Stelle variable Inhalte sind. Also könnte auch beispielsweise Hallo Welt diese "xxx" erstzen!

Achja, der Fehler: Keine Ahnung das echo $data; gibt keinen Wert zurück, was wohl heißen mag, das $regex nichts gefunden hat.

Wäre super wenn mir jemand helfen könnte *wink*

Danke
 
Zuletzt bearbeitet:
Das ist komisch. Wenn ich

PHP:
$regex = '(\"go:[^ "]+) ([^ "]+\">)'; 
$data =  'Dies ist ein Beispieltext und soll aus "go:xxx xxx" das Leerzeichen zwischen den';
$data = ereg_replace($regex, "_", $data); 
echo $data;
ausprobiere, erhalt ich wenigstens den ursprünglichen $data - Inhalt. Du zeigst in deinem Beispiel auch $data an, und nicht den von ereg_replace() zurückgegebenen String.
 
Hallo,

Zum Einen... wozu ist die spitze Klammer in $regex da?
Zum Anderen.... wenn du nur das Leerzeichen ersetzen willst, musst du im Replacement die Referenzen auf die 2 geklammerten Bereiche einarbeiten.... sonst wird alles ersetzt, nicht nur das Leerzeichen.
Dazu kommt natürlich das von brauch_mehr_schlaf Erwähnte.

ca so:
PHP:
$data  ='bla "go:xxx xxx" blubb' ;
$regex = '(\"go:[^ "]+) ([^ "]+\")';
$data  = ereg_replace($regex, "\\1_\\2", $data);
 
Zurück