| |
|
|
Michael Wodrich | Cerca mit regulären Audrücken.
@Match$( S1, S2 )
P:S1 - Suchmuster (Regulärer Ausdruck) P:S2 - Text, in dem nach dem Suchmuster gesucht wird
Ergebnis: String - Der erste gefundene Ausdruck, der dem Muster entspricht, oder ein Leerstring, wenn das Muster nicht im Text vorkommt.
Im einfachsten Falle ist das Suchmuster exakt der Text der gesucht wird: @Match$("test", "Hausaufgabentest") würde als Ergebnis "test" ermitteln. Hier ist allerdings zu beachten, daß einige Zeichen, die in Regulären Ausdrücken eine besondere Bedeutung haben, nicht direkt vorkommen können, die sogenannten "Metazeichen": .[]{}()|?+*^$~.
Um diese Zeichen im Muster zu verwenden, ist das Escapezeichen "~" vorzustellen. Wenn ich also z.B. den Ausdruck "5^5" im Text suchen möchte, müßte ich Match$("5~^5", text$) schreiben. Die Bedeutung der wichtigsten Metazeichen:
^, $ - Das Potenzzeichen am Anfang des Musters sorgt dafür, daß nur ein Vorkommen des Musters am Anfang des Textes gefunden wird, beim Dollarzeichen muß es am Endes des Textes stehen.
. (Punkt) - Der Punkt steht per jedes beliebige Zeichen. Das Muster "Ha.s" findet also z.B. "Haus", "Hans" oder "Hals".
[abc] - Einzeichenmuster: Die Gruppe in eckigen Klammern steht per ein Zeichen aus dieser Gruppe. Das Muster "M[ae][iy]er" findet also die Herren Maier, Meier, Mayer und Meyer. Der Herr Maler bleibt aber außen vor. Das Minuszeichen kann auch verwandt werden, um einen Zeichenbereich zu beschreiben: [a-d] findet die Kleinbuchstaben "a", "b", "c" oder "d". Wird auch das "-" gesucht, sollte es als erstes oder letztes Zeichen stehen oder mit dem "~" maskiert werden: [-ad], [ad-] oder [a~-d] findet die Zeichen "a", "d" oder "-". [A-Za-z0-9] findet alle Groß- und Kleinbuchstaben und alle Ziffern.
(abc|def) - Alternativen: Mit dem "|" werden mehrere Alternativen im Suchmuster beschrieben. Das Muster "M(ai|ey|au)er" findet nur die Herren Maier, Meyer und Mauer.
?, +, *, {von, bis} - Wiederholungen: Der vorhergehende Ausdruck bzw. das vorhergehende Zeichen muß in einer bestimmten Anzahl vorkomen. Im Einzelnen: ? - der Ausdruck muß 0 oder 1 mal vorkommen: "10?" findet "1" und "10", da das Zeichen "0" ein- oder keinmal vorkommen muß.
+ - der Ausdruck muß mindestens 1 mal vorkommen: "10+" findet also z.B. "10", "100" etc, aber nicht "1" * - der Ausdruck kann beliebig oft vorkommen: "10*" findet "1", "10", "100", etc. {n} - der Ausdruck muß exakt n mal vorkommen: "10{2}" findet "100", "(ha){3}" findet "hahaha" und [0-9]{3} jede dreistellige Zahl. {n,} - der Ausdruck muß mindestens n mal vorkommen {n,m} - der Ausdruck muß mindestens n mal und höchstens m mal vorkommen Auch LINK:[InStr] und LINK:[Translate]$ können mit regulären Ausdrücken arbeiten, wenn zuvor Set("RegEx",1) gesetzt wurde.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 13.08.2007 ▲ |
|
|
|