Regexpression Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
brill
Beiträge: 354
Registriert: 04.02.2005 10:37:34
Lizenz eigener Beiträge: GNU General Public License

Regexpression Problem

Beitrag von brill » 08.01.2009 14:35:18

Kann ich bei einem Regulären Ausdruck einfach eine Zeichenkette die aus gleichen Buchstaben besteht heraus filtern, wobei das verwendete Zeichen beliebig ist.

soll heissen "..." und "lll" soll beides ein Treffer sein.

klar könnte ich für jeden Buchstaben eine Alternative erstellen, aber das geht doch bestimmt noch viel eleganter.

Danke Brill

Benutzeravatar
goeb
Beiträge: 348
Registriert: 26.08.2006 18:12:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Regexpression Problem

Beitrag von goeb » 08.01.2009 16:10:57

Vielleicht so:

Code: Alles auswählen

1: goeb:~$ echo 'abcdddefgggggh' | grep -Eo '(.)\1+'
ddd
ggggg
MfG, gœb

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Regexpression Problem

Beitrag von Duff » 08.01.2009 16:17:44

Interessant und bis auf den Schalter -Eo logisch und verständlich.
Wofür steht das o?

Konnte es nicht mit man grep finden.
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Regexpression Problem

Beitrag von Spasswolf » 08.01.2009 16:37:21

man grep hat geschrieben: -o, --only-matching
Show only the part of a matching line that matches PATTERN.
Probier mal man grep und "/^ *-o".

Es gibt da aber noch ein Problem:

Code: Alles auswählen

echo 'abcddefgggggh' | grep -Eo '(.)\1+'
dd
ggggg

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Regexpression Problem

Beitrag von detix » 08.01.2009 17:52:34

Ist aber kein Problem, brill hat von "Zeichenkette die aus gleichen Buchstaben" geschrieben,
könnten also auch 2 sein, für 3 dann so:

Code: Alles auswählen

echo 'abcddefgggggh' | grep -Eo '(.)\1\1+'
In der deutschen grep manpage wird '-o' leider verschwiegen, in der englischen nicht:

Code: Alles auswählen

man -L en grep
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
brill
Beiträge: 354
Registriert: 04.02.2005 10:37:34
Lizenz eigener Beiträge: GNU General Public License

Re: Regexpression Problem

Beitrag von brill » 08.01.2009 18:00:50

vielen Dank,

ich hatte das mit den back references noch nicht gekannt.

Danke
Brill

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Regexpression Problem

Beitrag von Duff » 08.01.2009 18:52:21

detix hat geschrieben: In der deutschen grep manpage wird '-o' leider verschwiegen, in der englischen nicht:

Code: Alles auswählen

man -L en grep
So sieht's aus. Ich hatte nur in der deutschen manpage nachgeschaut. Jetzt weiß ich, dass ich in Zukunft wohl auch mal besser in die englische schauen sollte ;-)
Oh, yeah!

Antworten