Andi123: Regulärer Ausdruck

Hallo,

folgendes Problem. Es soll festgestellt werden, ob ein String ein BELIEBIGES Zeichen, welches mehrfach hintereinander auftritt, enthaelt.

Also z.B. "abcdeeeefghi"  sollte ein TRUE liefern. TRUE sollte immer dann geliefert werden, wenn das Zeichen mindestens 3x hintereinander auftritt.

Es ist aber nicht bekannt, welches Zeichen hintereinander auftritt.

Gibts dafuer ne RegEx?

Ich habe mich mit
   regAusdr.Pattern = ".{3,}"
versucht, was aber Quatsch ist, weil das immer ein TRUE liefert, wenn der String 3 Zeichen lang ist.

Dann versuchte ich mich mit
   regAusdr.Pattern = "(.{3,}\1)"
, aber das ist eigentlich auch Mist.

Ich braeuchte etwas wie
regAusdr.Pattern = "(.)\1{3,}"

Danke Andi

  1. hi,

    folgendes Problem. Es soll festgestellt werden, ob ein String ein BELIEBIGES Zeichen, welches mehrfach hintereinander auftritt, enthaelt. [...]
    Es ist aber nicht bekannt, welches Zeichen hintereinander auftritt.
    Gibts dafuer ne RegEx?

    Nein, ich glaube nicht, dass ein regulärer Ausdruck das zu leisten vermag.

    Ich würde einfach den Text Zeichen für Zeichen in einer Schleife durchlaufen, und jeweils schauen, ob das aktuelle Zeichen gleich dem vorherigen ist.
    Wenn ja, wird ein Zähler um eins erhöht. Wenn dieser Zähler den Wert drei erreicht, wird die Schleife abgebrochen.
    Wenn nein, wird der Zähler wieder auf null zurückgesetzt.
    Und wenn dein Zähler nach Ende der Schleife den Wert drei hat, war deine gesuchte Bedingung erfüllt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      folgendes Problem. Es soll festgestellt werden, ob ein String ein BELIEBIGES Zeichen, welches mehrfach hintereinander auftritt, enthaelt. [...]
      Es ist aber nicht bekannt, welches Zeichen hintereinander auftritt.
      Gibts dafuer ne RegEx?

      Nein, ich glaube nicht, dass ein regulärer Ausdruck das zu leisten vermag.

      Ah, ich hab jetzt folgendes gefunden:
      regAusdr.Pattern = "(.)\1{2,}"

      Das scheint zu gehen.

      Danke aber fuer deine Hilfe!

      1. hi,

        Nein, ich glaube nicht, dass ein regulärer Ausdruck das zu leisten vermag.
        Ah, ich hab jetzt folgendes gefunden:
        regAusdr.Pattern = "(.)\1{2,}"
        Das scheint zu gehen.
        Danke aber fuer deine Hilfe!

        Danke ebenfalls, für diese Erweiterung meines Wissensstandes :-)

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }