Bene: UltraEdit: Negation mit Unix Syntax

Hallo Leute,

mein Problem erscheint ganz simpel, trotzdem krieg ichs nicht gebacken: Ich möchte ganz einfach alle Zeilen, die ein bestimmtes Wort beinhalten, leeren.
Per Suchen und Ersetzen also oben die Negation des Wortes, unten leer lassen - dann müsste es klappen. Geht aber leider nicht.

Benutze die Unix Syntax und habs erst ganz simpel per [^wort] versucht, dann so konstruktionen a la ^([.]*[\s]*)|([\s]*[.]*)^(wort)|([\s]*[.]*)$ ausprobiert - geht alles nicht. kurios ist, das ultraedit bei machen suchausdrücken gar nichts findet, bei anderen wiederum findet er auschließlich leere zeilen (aber nicht ALLE leeren zeilen!?!), bei wieder anderen findet er kreuz und quer mal zeilen mit, mal ohne das wort, das nicht drinstehen darf.

das problem ist, dass die zeilen völlig unterschiedlich aufgebaut sind, ich also nicht nach einer festen struktur suchen kann. deshaln möchte ich die suche einfach
auf den fakt beschränken: "suche alle zeilen, in denen dieses wort NICHT vorkommt, und lösche diese zeilen"

Vielen Dank für die Hilfe,
Benjamin

  1. Tach.

    Ich möchte ganz einfach alle Zeilen, die ein bestimmtes Wort beinhalten, leeren.

    Ich hab mich mit RegExps in Ultra Edit auch schon ein paarmal herumgerärgert, weil (anscheinend) nur ein kleiner Ausschnitt dessen unterstützt wird, was man z. B. aus Perls Repertoire kennt.

    Benutze die Unix Syntax und habs erst ganz simpel per [^wort] versucht

    Das funktioniert natürlich auch in UE nicht, weil damit lediglich die Buchstaben w, o, r und t ausgeschlossen werden, die in dieser Zeichengruppe angegeben werden. Unabhänfig von der Reihenfolge, in der sie auftreten.

    "suche alle zeilen, in denen dieses wort NICHT vorkommt, und lösche diese zeilen"

    Was mir als Lösung spontan einfällt, ist folgende Vorgehensweise:

    Dreh einfach die Anforderung um. "Suche alle Zeilen, in denen das Wort *vorkomt*". UE bietet unter seiner Funktion "Find" auch die Option "List Lines Containing String", die Dir somit alle Zeilen liefert, die Du *nicht* wegschmeißen willst.

    Falls Du nun noch ausschließen möchtest, daß z. B. eine Zeile mit ins Ergebnis kommt, die "foobar" enthält, obwohl Du nur das Einzelwort "foo" als Kriterium anlegst, mußt Du Dir doch eine kleine RegExp schreiben, die die Wortgrenzen berücksichtigt.

    --
    Once is a mistake, twice is Jazz.