RegEx-Find&Replace-Editor


  • Mod

    Damit dann halt sowas möglich wird:

    Suche nach: (.*)@(.*) -> Replace ($2)@($1)
    
    Macht aus: side@winder winder@side
    

    oder so ähnlich, naja es sollte jetzt klar sein was ich meine 🙂

    Edit: Soll auch mehrzeilig funktionieren!

    MfG SideWinder



  • SideWinder schrieb:

    Das ist bei den meisten gängigen Editoren nicht der Fall (die können zwar nach RegExes suchen, aber nicht die gefundenen Sub-Parts wieder im Ersatz-Text verwenden).

    Ich weiß ja nicht, was Du unter "gängige Editoren" verstehst, aber das kann eigentlich jeder brauchbare Editor.

    Nur die Syntax variiert vermutlich ein bisschen, beim einen Editor musst Du die Gruppierungs-Klammern escapen, beim anderen nicht, etc.



  • SideWinder schrieb:

    Macht aus: side@winder winder@side
    
    sed -e 's:\(.*\)@\(.*\):\2@\1:g'
    

  • Mod

    Nenn mir einen für Windows - VS kanns soweit ich das sehe nicht mehrzeilig, UltraEdit möglicherweise, kostet aber, naja und Freeware ist da ja eher Mangelware :p

    MfG SideWinder


  • Mod

    Zu sed: Ist eher weniger geeignet. Ist eine Microsoft-Only-Firma, wenn ich denen sage sie sollen mir doch bitte UnixUtils für Windwos installieren krieg ich nix außer nen dummen Blick 🙄

    MfG SideWinder



  • SideWinder schrieb:

    Nenn mir einen für Windows - VS kanns soweit ich das sehe nicht mehrzeilig

    Naja, keine Ahnung, das Notepad kann das nicht, das ist mir schon klar. Aber wenn ein Tool das nicht kann, dann darf es sich doch nicht ernsthaft mit RegExp-Unterstützung brüsten, ist ja dann völlig unbrauchbar.

    Aber die sed-Variante da oben sollte funktionieren.



  • SideWinder schrieb:

    Zu sed: Ist eher weniger geeignet. Ist eine Microsoft-Only-Firma, wenn ich denen sage sie sollen mir doch bitte UnixUtils für Windwos installieren krieg ich nix außer nen dummen Blick 🙄

    Funktioniert wunderbar, ist Windows und kostet nix, da ist der dumme Blick beim besten Willen nicht gerechtfertigt. Ist ja nicht so, dass sie deswegen gleich ein Unix installieren müssen oder so, Cygwin reicht. (Und hat auch einen klickibunti-Installer und eine .com-Domain. ;))



  • da musst du doch noch nichtmal was installieren fuer. lad dir irgendwo die sed.exe runter oder mail sie dir und gut is.
    ausserdem kann ich mir nicht vorstellen, dass eine ganze firma so blind fanatisch ist, dass etwas nicht installiert werden darf, nur weil es auch fuer unix existiert. frag doch denjenigen, der dir das verbietet, wie du das sonst machen sollst. meist hat ja der arbeitgeber ein interesse daran, dass man was tut.



  • das mehrzeilig wird mit sed aber nicht so einfach



  • einfach ist relativ. man muss halt wissen, wies geht.



  • es ist komplizierter, also nicht so einfach. Da ist nichts relativ 😉



  • DrGreenthumb schrieb:

    es ist komplizierter, also nicht so einfach. Da ist nichts relativ 😉

    relativ auf jeden fall und deshalb auch komplizierter.
    !!!!!!!!!!!!!!!!! 🙂

    jenz



  • DrGreenthumb schrieb:

    das mehrzeilig wird mit sed aber nicht so einfach

    spricht was gegen perl?
    Das Multiline lässt sich mit dem m-Flag am Ende machen

    #! perl.exe
    
    my $fileContent = "si\nde\@winder";
    
    $fileContent =~ s/([a-z\n]+)\@([a-z]+)/$2\@$1/m;
    
    print $str;
    

    Eingabe:

    si
    de@winder
    

    Ausgabe:

    winder@si
    de
    

Anmelden zum Antworten