045
21.10.2003, 14:49 Uhr
virtual
Sexiest Bit alive (Operator)
|
Nein, schleife zum durchgehen de gesamten Schlüssels. Damit es einfacher wird für Dich, sag ich Dir mal, was ich mir so globalgalaktisch dabie gedacht habe: Nehmen wir mal das Pattern (Parameter key):
Das bedeutet, daß ein String, der Das Pattern matcht mit 2 oder mehr belibeigen Zeichen anfangen darf, dann soll "abc" kommen. Danach kommen zwei beliebige Zeichen und der feste Teil "def", gefolgt von 0 bis bel. viele zeichen und dann "ghi", am Ende nochmal beliebige Viele zeichen. Die Routine arbeitet so, daß sie key in einzelnen Gruppen untersucht:
Das fällt vielleicht nicht direkt ins auge, weil es in der Schleife gemacht wird und diese Zerlegung eher implizit geschieht. Aber im Prinzip werden immer wildcards gefolgt von einer Festen Zeichenfolge oder Key Ende als ein Teilstück betrachtet. Für jedes Teilstück wird nun untersucht, ob überhaupt wildcards da sind, und was sie genau bedeuten. ? beudetet ja genau ein zeichen, * 0 oder mehr zeichen. Dh die Anzahl der ? gibt an, wie viele Zeichen mindestens frei sind. Ist noch mindestens ein * vorhanden gibt es keine Obergrenze. in var_min steht die Anzahl der ? und in var_max steht !=0, wenn ein * vorhanden ist.
Mit diesen Infos wird nun (soweit vorhanden), das nächste in Frage kommende Vorkommnis des Festen texts (abs) gesucht. Und so eben für jeden Teilbereich den key.
Sollte zwischendurch irgendeine ungereimtheit auftreten, wird angnommen, daß ein Mismatch vorliegt. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |