Tom1tk: Frage zu preg_match

Hallo,

ich steh grad auf der Leitung:

Ich versuche eine Wort $text zu überprüfen, ob es keine öäü enthält.

if (preg_match("/[a-zA-Z0-9]*/",$text,$Muell))print ("ok");

Oder anders rum: Ich will diesen String als Dateinamen dann verwenden. Hat jemand grad ne Idee??

Greets

  1. Hi,

    Ich versuche eine Wort $text zu überprüfen, ob es keine öäü enthält.
    if (preg_match("/[a-zA-Z0-9]*/",$text,$Muell))print ("ok");

    Du überprüfst, ob irgendein erlaubtes Zeichen vorkommt - oder auch keines.

    Oder anders rum: Ich will diesen String als Dateinamen dann verwenden. Hat jemand grad ne Idee??

    Prüfe auf Vorkommen eines(!) nicht erlaubten Zeichens.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Nochmals,

      if (preg_match("/[a-zA-Z0-9]*/",$text,$Muell))print ("ok");

      if (!preg_match("/[äüö]*/",$text,$Muell))print ("ok");

      So?? Was passiert jetzt, wenn in meiner Datenbank zwei Worte in einem String eingetragen sind??

      Vielleicht noch ein Nachtrag:
      Ich lese aus nem Array irgendeinen Eintrag aus:

      $name=$array[rand(0,count($array))];

      Und das will ich solange machen, bis ich einen String gefunden habe, dan man als Dateinamen gebrauchen kann. Und dazu brauch ich ne Abfrage-Funktion, die eben die "falschen" Buchstaben / Leerzeichen entweder raushaut/ersetzt oder einen neuen Wert aus dem Array ausliest.
      Problem: in dem Array sind nicht nur strings aus einem Wort, sondern auch strings, die aus mehreren Worten bestehen:
      z.B.
      $array[]="Test";
      $array[]="Das ist toll!";
      $array[]="Käse schmeckt gut.";

      So und jetzt sollten da die "." und "!" ersetzt werden und falls äüö sollte ein neuer Wert gesucht werten...

      Falls da jemand ein Profi ist in Sachen preg_match und Reg-Exp würde ich mit freuen was von Ihm zu hören.

      Greets Tom1tk

      1. Hi,

        if (!preg_match("/[äüö]*/",$text,$Muell))print ("ok");
        So??

        nein. Du testest immer noch auch auf _kein_ Zeichen, und erlaubst jetzt nur noch Namen, die mindestens einen Umlaut (mindestens kein Mal, ähem) enthalten. Du sollst prüfen, ob mindestens ein nicht erlaubtes Zeichen (das sind alle bis auf die explizit erlaubten) vorkommt, und dann _ablehnen_.

        Ich lese aus nem Array irgendeinen Eintrag aus:
        Und das will ich solange machen, bis ich einen String gefunden habe, dan man als Dateinamen gebrauchen kann.

        Dieser Algorithmus terminiert nicht. Herzlichen Glückwunsch zur Endlosschleife.

        Problem: in dem Array sind nicht nur strings aus einem Wort, sondern auch strings, die aus mehreren Worten bestehen:

        Das ist kein Problem, weil Leerzeichen nicht zu den erlaubten Zeichen gehören.

        So und jetzt sollten da die "." und "!" ersetzt werden

        Davon habe ich in Deinem Code noch nichts gesehen.

        Falls da jemand ein Profi ist in Sachen preg_match und Reg-Exp würde ich mit freuen was von Ihm zu hören.

        Ich glaube nicht, dass sich jemand hauptberuflich mit RegExp beschäftigt. Nebenbei kommt es aber bei vielen vor - was noch lange nicht heißt, dass sie das Thema dann auch wirklich beherrschen.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes