Regex: 2 identische aufeinanderfolgende Buchstaben erkennen

Dieses Thema: "Regex: 2 identische aufeinanderfolgende Buchstaben erkennen" im Forum "Programmieren allgemein" wurde erstellt von supersucker, 01.08.2006.

  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. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    (.)\1
    
    Gruss, Xanti
     
  4. #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.
     
  5. #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.
     
  6. #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!
     
  7. #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

Die Seite wird geladen...

Regex: 2 identische aufeinanderfolgende Buchstaben erkennen - Ähnliche Themen

  1. 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....
  2. 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...
  3. 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...
  4. RegExp für "Wort|NN"

    RegExp für "Wort|NN": Hallo zusammen, ich habe eine Textdatei mit einigen tausend Zeilen, die in etwa so aussehen: ---------- Absenkung|NN -0.3434 Absenkungen...
  5. Einen String extrahieren per Regex Hilfe gesucht

    Einen String extrahieren per Regex Hilfe gesucht: Hallo Leute, ich habe folgenden String: <td><font color="Black"><a href="url.tld?ID=AEA6EA04"...