PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : egrep gibt zu viel aus



Opa Nolle
16-01-2004, 12:00
Hallo,

bei dem folgenden regulären Ausdruck ist mir unklar, warum er aus der Liste unten auch '...27:12... ' ausgibt. Weis jemand, warum das passiert?

Ausdruck:
egrep "([01]?[0-9]2[0-3]|[0-9]):[0-5][0-9]" ...datei

Ich habe verschiedene Varianten durchprobiert, es gab aber entweder garkeine Ausgabe, oder wieder mit '27:12'. :mad:



Es ist jetzt 0:34 Uhr.
Es ist jetzt 17:51 Uhr.
Es ist jetzt 23:59 Uhr
Es ist jetzt 17:65 Uhr
Es ist jetzt 1:15 Uhr
Es ist jetzt 27:12 Uhr
Es ist jetzt 03:15 Uhr

DaTa
16-01-2004, 12:55
Original geschrieben von Opa Nolle

egrep "([01]?[0-9]2[0-3]|[0-9]):[0-5][0-9]" ...datei


Weil du da "|[0-9]):" drin hast, das matched auf "7:"

offe
16-01-2004, 13:32
vielleicht?

"([01][0-9]|[2][0-3]):[0-5][0-9]"

Offe

Opa Nolle
16-01-2004, 13:37
Original geschrieben von DaTa
Weil du da "|[0-9]):" drin hast, das matched auf "7:"

Wenn ich das rausnehme, egal in welcher Variante, funktioniert es entweder nicht, oder es wird wieder zuviel ausgegeben.

Opa Nolle

offe
16-01-2004, 13:44
noch besser?

"([0-9]|[01][0-9]|[2][0-3]):[0-5][0-9]"

Offe

fork
16-01-2004, 18:19
> noch besser?
> "([0-9]|[01][0-9]|[2][0-3]):[0-5][0-9]"

Der Kanditat hat 99 Punkte.

Denn bei: 27:12 trifft der Ausdruck auch zu. Das blaue gehoert ja nicht zum Ausdruck.

"([^0-9]|^)([0-9]|[01][0-9]|[2][0-3]):[0-5][0-9]"Das funktioniert, behaupte ich mal.

Hier noch ein kleines Werkzeug das man beim bändigen von Regechsen immer gebrauchen kann.

http://txt2regex.sourceforge.net/

Opa Nolle
18-01-2004, 10:33
Original geschrieben von fork

Hallo,

Bin erst jetzt wieder an meinen heimischen Rechner gekommen.




"([^0-9]|^)([0-9]|[01][0-9]|[2][0-3]):[0-5][0-9]"Das funktioniert, behaupte ich mal.


Ja, das funktioniert! Habe ich eben ausprobiert. Muß ich mir dann noch in Ruhe ansehen. - Die Aufgabe stammt übrigens aus dem Buch: "Reguläre Ausdrücke", und die Lösung dort hat auch nicht funktioniert.



Hier noch ein kleines Werkzeug das man beim bändigen von Regechsen immer gebrauchen kann.

http://txt2regex.sourceforge.net/

Werd ich mir morgen an der Arbeit runterziehen; da haben wir ne flotte Standleitung. Ich mach` noch mit einem Modem rum.

Nochmal Danke an alle für ihre Tips.

Opa Nolle

fork
18-01-2004, 12:40
> da haben wir ne flotte Standleitung. Ich mach` noch mit einem Modem rum.
txt2regex ist ein Shellscript :)

peschmae
18-01-2004, 13:52
und zudem noch recht klein ;)

MfG Peschmä

Opa Nolle
18-01-2004, 14:11
Original geschrieben von peschmae
und zudem noch recht klein ;)

MfG Peschmä

Nur nochmal zur Erklärung:

Hab ich mir schon gedacht das es sich um ein kleines Programm handelt, aber ich lade mir so gut wie alles an der Arbeit runter und brenne es dann auf eine CD.
Die Leitung ist wirklich flott. Wenn auf der Gegenseite ein ebenso flotter Sender steht dann saust es nur so durch. Schnellster Download bisher: 8 MB/sec. :D

Opa Nolle