Knusperklumpen: RegExp komplettes Wort verneinen

Hallo,

ich habe leider keine Möglichkeit gefunden mit Hilfe von regulären Ausdrücken ein komplettes Wort zu verneinen.
Eigentlich dient dazu ja das Dachsymbol ^, das funktioniert aber nur bei Zeichenklassen oder einzelnen Zeichen, bei kompletten Wörtern markiert es den Anfang des Wortes.
Gibt es eine Möglichkeit, trotzdem ein komplettes Wort zu verneinen ?

Danke und mfg
Knusperklumpen

  1. Hi,

    Gibt es eine Möglichkeit, trotzdem ein komplettes Wort zu verneinen ?

    hast du schon probiert, das Wort einzuklammern und dann das ^ vor die Klammer zu setzen?

    Gruß
    Wurf

    1. hast du schon probiert, das Wort einzuklammern und dann das ^ vor die Klammer zu setzen?

      Ja, das hab ich auch versucht, mit dem Ergebnis, dass das selbe Ergebnis geliefert wurde wie ohne Klammern (die runden Klammern meine ich jetzt, also ( & ) ).

  2. Tag Knusperklumpen.

    ich habe leider keine Möglichkeit gefunden mit Hilfe von regulären Ausdrücken ein komplettes Wort zu verneinen.

    Du suchst Lookahead-Konstrukte, siehe http://forum.de.selfhtml.org/archiv/2005/6/t109413/#m683611, letztes Beispiel.

    Siechfred

  3. echo $begrüßung;

    ich habe leider keine Möglichkeit gefunden mit Hilfe von regulären Ausdrücken ein komplettes Wort zu verneinen.

    Beschreibe bitte genauer, was du damit erreichen willst. Vielleicht helfen dir Assertions dabei.

    echo "$verabschiedung $name";

    1. Hi,
      das klingt schonmal vielversprechend.

      Kurze Beschreibung:
      Ich habe ein Formular. Um die Usereingaben zu prüfen hab ich eine Klasse geschrieben. In dieser Klasse gibt es ein Array, welches die Pflichtfelder des Formulars bestimmt, ein Array welches reguläre Ausdrücke beinhaltet um die entsprechenden Felder zu prüfen und ein Array mit Fehlermeldungen, die dann ausgegeben werden.
      Jetzt habe ich u.A. ein Selectfeld mit der Vorbelegung "Bitte wählen".
      Da dachte ich mir, dass ich einfach als RegExp angebe, dass nicht "Bitte wählen" übergeben werden darf. Das hab ich leider nicht hinbekommen. Hatte es halt mit /^(Bitte wählen)/ usw. versucht.
      Mittlerweile ist es mir wie Schuppen aus den Augen gefallen, dass ich ja als value in der <option> nicht "Bitte wählen" übergeben muss, sondern meinetwegen "#" übergebe und dann nach /[^#]/ prüfe.
      Trotzdem hat mich der Ehrgeiz gepackt herauszufinden wie man ein komplettes Wort, oder nen Satz "rausfiltern" kann.

      Ich hab quasi alles durchprobiert, steig aber nicht so richtig hinter die Logik dieser Assertions :-(

      mfg
      Knusperklumpen

      1. Ich hab quasi alles durchprobiert, steig aber nicht so richtig hinter die Logik dieser Assertions :-(

        Ich scheine es rausbekommen zu haben

        /^(?!Bitte wählen)/ funktioniert.

        Wenn ich das richtig verstehe sollte das heiße "am anfang des Strings darf nicht Bitte wählen stehen".
        Ich hoffe, dass ist im Sinne der Erfindung und nicht unsinnig, lasse mich dahingehend also gerne weiter beraten.

        Danke und mfg
        Knusperklumpen