Bernd D.: RegExp: Bestimmtes Wort darf NICHT vorkommen, aber wie?

Guten Abend zusammen!

Mit RegExp komme ich soweit ganz gut zurecht, aber an einem Problem scheitere ich andauernd: Ich möchte eine Zeichenkette durchsuchen und das RegExp soll nur matchen wenn ein bestimmtes Wort NICHT darin vorkommt.

Ich kann zwar mit [^a] etc negieren, aber das betrifft ja nur einzelne Buchstaben. Kann man das irgendwie für Zeichenketten erweitern oder umschreiben?

Schonmal besten Dank im Voraus!

Gruß, Bernd

  1. Guten Abend zusammen!

    hi Bernd,

    Mit RegExp komme ich soweit ganz gut zurecht, aber an einem Problem scheitere ich andauernd: Ich möchte eine Zeichenkette durchsuchen und das RegExp soll nur matchen wenn ein bestimmtes Wort NICHT darin vorkommt.

    unter der Annahme dass du mit PERL da was machst empfehle ich Text::Query;
    http://perlbase.xwolf.de/

    Gruss, Rolf

    --
    KnowHow veröffentlichen statt Patentieren!
    1. Hi Rolf!

      Mit RegExp komme ich soweit ganz gut zurecht, aber an einem Problem scheitere ich andauernd: Ich möchte eine Zeichenkette durchsuchen und das RegExp soll nur matchen wenn ein bestimmtes Wort NICHT darin vorkommt.

      unter der Annahme dass du mit PERL da was machst empfehle ich Text::Query;

      Nein, ich verwende kein Perl, deshalb hatte ich als Rubrik extra Sonstiges ausgewählt anstatt Perl ;-)
      Es geht nur rein um den RegExp-Syntax wie er original ist und von vielen Programmen verwendet wird. Konkret geht es darum, mit einem Anti-Spam-Tool zu prüfen ob eine Mail den Header "To:" enthält, falls nicht soll er die Mail als Spam markieren.

      Ich kann leider da nur den RegExp-Syntax anwenden da es keine UND/ODER/NICHT/...-Abfrage gibt :(

      1. Hi Bernd,

        unter der Annahme dass du mit PERL da was machst empfehle ich Text::Query;

        Nein, ich verwende kein Perl, deshalb hatte ich als Rubrik extra Sonstiges ausgewählt anstatt Perl ;-)

        Na dann wirds ja Zeit dass Du Dich mit PERL beschäftigst ;-)

        Es geht nur rein um den RegExp-Syntax wie er original ist und von vielen Programmen verwendet wird. Konkret geht es darum, mit einem Anti-Spam-Tool zu prüfen ob eine Mail den Header "To:" enthält, falls nicht soll er die Mail als Spam markieren.

        Der Hersteller des 'Anti-Spam-Tool' bietet sowas sicher als Feature an, ansonsten wird der abgewählt (so sehe ich das).

        Oder, wie schon gesagt, machs mit PERL...

        --Rolf

        --
        KnowHow veröffentlichen statt Patentieren!
        1. Hi Rolf!

          Nein, ich verwende kein Perl, deshalb hatte ich als Rubrik extra Sonstiges ausgewählt anstatt Perl ;-)

          Na dann wirds ja Zeit dass Du Dich mit PERL beschäftigst ;-)

          Hatte bisher noch keinen Grund es zu verwenden ;) Hab bisher so auch alles geschafft :)

          Der Hersteller des 'Anti-Spam-Tool' bietet sowas sicher als Feature an, ansonsten wird der abgewählt (so sehe ich das).

          Is zum Glück nicht mein Problem da ich das Programm selbst nicht verwende, bei mir filtert GMX alles aufm Server aus :)

          Oder, wie schon gesagt, machs mit PERL...

          Ein andermal vielleicht ;)

          Gruß, Bernd

          1. Hallo Bernd,

            Oder, wie schon gesagt, machs mit PERL...

            Ein andermal vielleicht ;)

            Ok, das lassen wir mal so stehen ... *G

            Viele Grüße und schönen Sonntag morgen.

            Rolf

            --
            KnowHow veröffentlichen statt Patentieren!
  2. Hallo Bernd,

    Ich kann zwar mit [^a] etc negieren, aber das betrifft ja nur einzelne Buchstaben. Kann man das irgendwie für Zeichenketten erweitern oder umschreiben?

    Die einzige Möglichkeit wären Negative Lookahead Assertions, also Konstrukte wie (?!wort). Allerdings ist das auch nur begrenzt möglich; im Prinzip lässt sich das, was Du willst, nicht wirklich mit regulären Ausdrücken durchführen, dafür sind die einfach nicht gemacht.

    Viele Grüße,
    Christian

    --
    Ich hoffe, Deutschland scheidet in der EM möglichst früh aus, dann spricht man hoffentlich nicht mehr so lange über das leidige Thema Fußball.
  3. Hallo Bernd,

    so'n Problem hatte ich auch schonmal. Wie Christian schon geschrieben hat geht sowas meines Wissens auch nicht. Du mußt den umgekehrten Weg gehen: das Wort suchen, und wenn Du kein Ergebnis bekommst, dann kommt es nicht vor.

    Moment, Sven Rautenberg hat mir was schönes dazu geschrieben: http://forum.de.selfhtml.org/archiv/2002/7/17788/#m99975

    Gruß, Andreas

    --
    <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
    hier könnte auch ruhig mal'n neues Bild stehen.