+ Antworten
Ergebnis 1 bis 6 von 6
  1. #1
    Registriert seit
    Oct 2008
    Beiträge
    1,039

    Standard Regex im Editor für Suchen und Ersetzen

    Ich komme da gerade nicht weiter.

    Ich will alle Indices von assoziativen Arrays von ["<index>"] auf ['<index>'] umstellen (doppel- auf einfachhochkomma).

    Das gültige Regex zum suchen wäre

    "\[(\S+\)]"

    und zum ersetzen

    '\[\1\]'


    und nach PHP 5.x müssen ja die Regexe dann in Delimiter gesetz werden, das wäre dann

    /"\[\S+\]"/

    Dieses Regex findet aber nix.

    Was mache ich falsch?

    Danke!
    jwka

  2. #2
    Registriert seit
    May 2005
    Beiträge
    2,337

    in der Bedingung müssen die doppelten Anführungsstriche maskiert werden, in der Ersetzung der Backslash, aber nicht die Klammern. Ausserdem muss der Stringanfang und Ende eindeutig sein.
    PHP-Code:
    $test='$myarray["XYZ"]';
    print 
    preg_replace('/\[\"(\S+)\"\]/',"['\\1']",$test);
    //Ergebnis
    $myarray['XYZ'
    Tommi

  3. #3
    Registriert seit
    Oct 2008
    Beiträge
    1,039

    Danke für die Hilfestellung. Im Code selbst hauen die RegEx immer ganz gut hin, da habe ich weniger Probleme.

    Aber gib doch mal im Scripteditor bei der Suchfunktion Dein Regex ein.
    Was ich jetzt durch rumprobieren rausgefunden habe, ist, dass die äusseren Delimiter nicht angegeben werden müssen.

    Dieser Text als Regex gesucht:
    \[\"(\S+)\"\]

    findet die Stellen, die ich ersetzen will.


    Was aber wohl nicht funktioniert, ist das Ersetzen:

    das RegEx- Bestandteil

    \1 (oder \\1 wenn ich den Backslash noch maskiere)

    in der Ersetzen-Zeile.

    Bei mir wird aus

    $myarray["XYZ"]

    $myarray['(1)'] bzw.
    $myarray['(\1)'] wenn ich den \ beim 1. Pattern (RegEx= \1) maskiere.


    Dass man die Patterns in die Erserten-Zeile retten kann, ist aber vital für die Benutzung, sonst kann ich mir das RegEx auch sparen. Also irgendwie muss man doch ein Pattern in die Ersetzenzeile rüberbringen können?

    Gibt es irgendwo eine Doku, welche Notation IPS im System selbst (also im Editor) für RegEx erwartet????? Ich habe nix gefunden.

  4. #4
    Registriert seit
    May 2005
    Beiträge
    2,337

    Suchfunktion im Scripteditor? Nie benutzt. Gerade das erste Mal gesehen.

    hier muss man das Replacement so angeben: ['$1']

    Tommi

  5. #5
    Registriert seit
    Oct 2008
    Beiträge
    1,039

    Funzt. Danke! Wäre ich nicht drauf gekommen.
    jwka

  6. #6
    Registriert seit
    May 2005
    Beiträge
    2,337

    ist so wie in Perl.
    Eine Erläuterung der Syntax in der Doku wäre natürlich auch nicht schlecht.

    Tommi

Ähnliche Themen

  1. "In Dateien suchen..." bzw "In Dateien ersetzen..."???
    Von douglas882 im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 2
    Letzter Beitrag: 01.03.09, 21:54
  2. www-reader/text parser: Sonderzeichen ersetzen
    Von MrMusical im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 05.04.08, 20:38
  3. Stromstoßrelais erweitern bzw. ersetzen
    Von jolentes im Forum Haustechnik
    Antworten: 9
    Letzter Beitrag: 22.08.06, 16:30
  4. Klingeltaster durch FS20 ersetzen
    Von jolentes im Forum Allgemeine Diskussion
    Antworten: 8
    Letzter Beitrag: 27.06.06, 08:29