bu-cipolla schrieb:
Mir geht es darum, zu verstehen, wie die Logik von regulären Ausdrücken ist. Ich finde es etwas sperrig. Wenn ich doch klar anweise, dass ich einen String suche, der mindestens 3 uns höchstens 3 Zahlen lang sein soll {3,3}, wieso dann eine Zahl wie 1988 gefunden wird.
Nun ja, es gibt halt in "1988" eine Zahl mit drei Ziffern. So einfach ist das. ☺
Du brauchst übrigens nur "{3}" und nicht "{3,3}".
Ich kann jetzt mit eurer Hilfe nachvollziehen, dass man zusätzlich anweisen muss, dass der String einen Wortanfang und ein Wortende haben muss.
Nein, so allgemein kann man das auch wieder nicht sagen. Die Strategie hängt ganz entschieden von den Eingaben und davon ab, was man erreichen möchte.
Für das Lernen empfehle ich immer den Regex Coach (läuft auch unter WINE): da kann man zusehen, wie das Matchen vor sich geht. Generell muss man zwar immer noch darauf achten, dass verschiedene Regex-Engines verschiedene Optimierungen und Features haben, aber für die Grundlagen reicht das allemal.
Ciao
robert