Problem mit RegEx

Seberoth

Grünschnabel
Hallo zusammen,

ich sitzte jetzt seit mittlerwile 2 Tagen an einer Regular Expression und krieg es einfach nicht hin.

Und zwar möchte ich folgendes:

Bisheriger Code:
PHP:
 preg_replace('/([a-z0-9_]+)\s*=\s*(.+)/Uis', '`$1`=`$2`', $string);

Code:
Beispiel 1:
String: login=name
Soll: `login`=`name`
Ist: `login`=`n`ame

Beispiel 2:
String: login=name AND x=y
Soll: `login`=`name` AND `x`=`test`
Ist: `login`=`n`ame AND `x`=`t`est

In beiden fällen wird nur jeweils das erste Zeichen nach dem = in `` gesetzt.

Ich hoffe ihr könnt mir helfen :)

MfG,
Seberoth
 
Hi.

Du hast doch explizit spezifiziert, das die Quantoren nicht-gierig sein sollen, und wunderst dich nun das die Quantoren nicht-gierig sind... :confused:

Versuch's mal damit:
Code:
/(\S+)\s*=\s*(\S+)/s

Anscheinend möchtest du da SQL Ausdrücke verarbeiten (um SQL Injektion zu vermeiden?). Dafür gibt es allerdings in der Regel fertige Funktionen...

Gruß
 
Erstmal vielen dank für die schnelle hilfe.

Ich hatte es bereits im Vorfeld ohne U probiert, doch leider hatte das immer das Ergebniss, das der komplette string nach dem = in die `` gesetzt wurde.

Aber jetzt wo ich deinen (funktionierenden) Vorschlag sehe, wird mir einiges klar^^

MfG,
Sberoth
 
Zurück