Hallo Bernd, Am Montag, 24. Dezember 2001 17:20 schrieb Bernd Brodesser:
grep -E '[^a-zA-Z]{10}' schmeißt mir jede Zeile aus, sobald auch nur eine Ziffer da steht.
Du suchst nach eine Zeichenkette, die aus 10 Zeichen besteht, welche alle _keine_ Buchstaben sind. Da sind Ziffern kein schlechter Kandidat.
Ja, [^a-zA-Z] ist ja in den eckigen Klammern negiert. Ich habe aber angenommen, daß min 10 Zahlen oder Sonderzeichen vorkommen müssen.(nacheinander) Mir geht es nur um die "{10}" oder "{10,100}". Der {10} Ausdruck bringt schmeißt den String erst raus, wenn min. 10 Treffer gefunden werden. Bei {10,11} schmeißt mir grep -E (o. egrep) auch Strings mit 12 (odermehr) Treffern raus. IMHO soll das so nicht sein. *???*
Soll ich mal ein Geheimnis erzählen? Die RegExp sind gar keine Reguläre Ausdrücke mehr, da es sowas wie \1 und \2 usw. gibt.
Man könnte z.B nach ([a-z]*)\1 suchen. Kann auch sein, daß vor den ( und ) ein \ muß, aber das ist egal. Wichtig, es ist nicht kontexfrei, sondern kontexsensitiv. Reguläre Ausdrücke sind aber kontexfreie Ausdrücke.
Man lernt ja immer wieder etwas dazu. Wußte ich nicht. Mir sagt "kontextfrei und kontexsensitiv" nichts, was ist das? Übrigens, das Geheimnis ist keines mehr;)) ByE Andre