Regex: 2 identische aufeinanderfolgende Buchstaben erkennen

Diskutiere Regex: 2 identische aufeinanderfolgende Buchstaben erkennen im Programmieren allgemein Forum im Bereich Programmieren unter Linux/Unix; Hi, ich verwende in perl oft und gerne regular expressions. Nun stehe ich aber vor einem Problem, bei dem ich nicht weiterkomme, nämlich...

  1. #1 supersucker, 01.08.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Hi,

    ich verwende in perl oft und gerne regular expressions.

    Nun stehe ich aber vor einem Problem, bei dem ich nicht weiterkomme, nämlich folgendes:

    Ich möchte zwei identische, aufeinanderfolgende Buchstaben, also z.b.

    dd
    rr
    tt

    erkennen, nicht jedoch sowas wie

    dw
    rs
    tu

    Meiner Ansicht nach ist das mit regulären Ausdrücken nicht möglich, oder doch?

    Danke für jede Anregung

    P.S. bitte keine Anmerkungen, wie man das sonst programmiertechnisch lösen kann, das ist mir völlig klar, mir geht es darum zu wissen ob, und wenn ja wie man das mit regulären Ausdrücken könnte.
     
  2. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    (.)\1
    
    Gruss, Xanti
     
  3. #3 supersucker, 01.08.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Danke Xanti,

    mit Backreference ist gut.

    Aber:

    Gibt es auch eine Möglichkeit beliebig viele identische Zeichen zu erkennen?

    Also:

    Erkenne

    aaa
    aaaaa
    aaaaaaa

    aber nicht

    abab
    abababa

    usw.

    Der Haken an

    Code:
    (.)\1
    ist das ich dahinter keine Quantoren hängen kann und somit immer nur zwei Zeichen erkenne.

    P.S. Sorry, hatte in meinem ersten Post nicht erwähnt das es mir eigentlich darum ging beliebig viele identische Zeichen zu erkennen und dummerweise zwei geschrieben.
     
  4. #4 Xanti, 01.08.2006
    Zuletzt bearbeitet: 01.08.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Warum nicht? Tu's doch einfach :)

    Code:
    [~]$ echo "123abcddefffghiijjjjjjjk" | perl -pe 's!(.)\1+!$1!g'
    123abcdefghijk
    
    edit: Nochmal zur Erklärung: Der Quantor bezieht sich auf \1, nicht auf den ganzen Ausdruck (.)\1. Also matche auf beliebiges Zeichen, dem eine beliebige (+) Anzahl desselben Zeichens folgt.
     
  5. #5 supersucker, 01.08.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Jup,

    ich Held hatte in dem Beispiel mit dem ich das probiert hatte einen Fehler drin, deswegen hatte das bei mir auch nicht funktioniert.

    Danke!
     
  6. #6 Wolfgang, 01.08.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    oder so ;)
    Code:
     echo "123abcddefffghiijjjjjjjk" | perl -pe 's!(.)(?=\1)!!g'
    123abcdefghijk
    
    lookahead

    Gruß Wolfgang
     
Thema: Regex: 2 identische aufeinanderfolgende Buchstaben erkennen
Besucher kamen mit folgenden Suchen
  1. reguläre ausdrücke 3 identische zeichen

    ,
  2. regular expression zwei gleiche Zeichen

    ,
  3. regex nicht nur gleiche zeichen

    ,
  4. w enthält zwei aufeinanderfolgende gleiche Zeichen,
  5. regex zwei gleiche ziffern aufeinander folgend
Die Seite wird geladen...

Regex: 2 identische aufeinanderfolgende Buchstaben erkennen - Ähnliche Themen

  1. Verständnisfrage zu RegExps

    Verständnisfrage zu RegExps: Hallo Leute, ich bastle gerade an einem Shell-Script und brauche dabei ein paar RegExps. Bisher hatte ich mich mit RegExps wenig auseinander...
  2. grep + regex zum Log parsen

    grep + regex zum Log parsen: Hi zusammen, ich möchte ein Logfile gerne auf eine Stringkombination durchsuchen. D.h. im Log steht sowas wie: 2016-12-20 10:10:43 ETL started :...
  3. sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?

    sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?: Hallo, mein Ziel ist es ein Script zu schreiben, das eine CSS-Datei entgegen nimmt und in dieser Datei Pfade ersetzt. Ich möchte bspw....
  4. RegEx Problem ... grep kein \. außer \.name

    RegEx Problem ... grep kein \. außer \.name: Hallo Leute, ich möchte gerne einen regulären ausdruck zum filtern bestimmter dateien außer 1 bestimmten. Konkret bedeutet das ich möchte alle...
  5. regexp für alle user einer bestimmten Maildomain

    regexp für alle user einer bestimmten Maildomain: Hallo, ich brauche den regulären Ausdruck, der mir erlaubt alle Mailadressen von firma.de zu filtern. Ich habe es schon mit folgenden...