Christian: REGEXP - String prüfen ob er verschiedene Buchstaben enthält

Hi,

ich möchte mit reg. Ausdrücken prüfe, ob ein String verschiedene Zeichen enthält oder immer nur dasselbe.
Folgendes ist gegeben:

  • In einem String können maximal 5 verschiedene Buchstaben vorkommen.
  • Jeder dieser Buchstabe kann auch mehrmals vorkommen.
  • Die Reihenfolge der Buchstaben kann gemischt sein.

Hier einige Beispiele:

Der Ausdruck soll true zurückgeben, wenn der String in z.B. folgender Form vorliegt:

AABC
ABCDE
DDBC
EADC
AAAAAAAB
BEDDAC
CADEEE

...

Strings wie

AA
BBB
CCCC
D
EE

wo, also immer NUR der selbe Buchstabe drinvorkommt, soll der Ausdruck nicht finden.

Ideen dazu? Wäre nett!

Gruß
Christian

  1. Hallo,

    hmm...
    da kommen mir jetzt nur Referenzen in den Sinn, aber das scheint mir etwas aufwändig, weil man ja nicht weiß, wie lang der String ist.

    Schneller gehts sicherlich mit einer simplen Schleife in der Du immer den neuen buchstaben mit dem vorigen vergleichst. Sobald eine Ungleicheit gefunden wird: true.

    Gruß, Andreas

    --
    SELFFORUM - hier werden Sie geholfen,
    auch in Fragen zu richtiges Deutsch
  2. Huhu Christian

    ich möchte mit reg. Ausdrücken prüfe, ob ein String verschiedene Zeichen enthält oder immer nur dasselbe.

    wo, also immer NUR der selbe Buchstabe drinvorkommt, soll der Ausdruck nicht finden.

    Mmmmh, möchtest Du nun einzelen Strings _prüfen_, oder _finden_?

    Das erstere wäre ja recht einfach komplett mit ohne RegExp zu lösen.

    Für zweiteres könnte man per RegExp alle Wörter finden und an eine callback-Funktion weiterreichen.

    Beide Male könnte dann die Verwendung von count_chars() hilfreich sein.
    http://de3.php.net/manual/en/function.count-chars.php

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
  3. 你好 Christian,

    • In einem String können maximal 5 verschiedene Buchstaben vorkommen.
    • Jeder dieser Buchstabe kann auch mehrmals vorkommen.
    • Die Reihenfolge der Buchstaben kann gemischt sein.

    Ich wuerde keinen RegEx benutzen, aber folgendes sollte gehen:

    if(!preg_match('/^.\1*$/',$txt)) {
      echo "error\n";
    }

    再见,
     CK

    --
    To define recursion, we must first define recursion.
    http://wwwtech.de/