RegexGlobalMatch
value RegexGlobalMatch ( value rxPattern, BYREF value rxIterator, string strSubject, value Offset = 0, value MatchType = REGEX_MatchType_NormalMatch, value MatchOptions = REGEX_Match_NoMatchOption );
Rückgabewert
Rückgabewert |
Beschreibung |
TRUE / true / 1 |
Der RegexIterator-Verweis rxIterator wurde erfolgreich erstellt. |
FALSE / false / 0 |
Der übergebene Regex-Verweis für rxPattern ist ungültig. |
Parameter
rxPattern
Ein gültiger Regex-Verweis, der zur Analyse der Zeichenkette strSubject verwendet werden soll.
rxIterator
Wird mit einem gültigem RegexIterator-Verweis geladen, der das Ergebnis der Auswertung enthält.
Zur weiteren Verarbeitung muss dieser RegexIterator-Verweis an weiterführende RegexIterator-Funktionsaufrufe übergeben werden.
strSubject
Die Zeichenkette, die anhand des Regex-Verweises rxPattern, analysiert werden soll.
Offset
Die Position ab der die Analyse in der Zeichenkette strSubject beginnen soll.
MatchType
Der MatchType gibt an, wie eine Übereinstimmung mit dem Filtermuster bewertet werden soll.
Einer der folgenden Werte ist möglich:
MatchType |
Beschreibung |
REGEX_MatchType_NormalMatch |
Es wird nach normaler Übereinstimmung gesucht. |
REGEX_MatchType_PartialPreferCompleteMatch |
Die Zeichenkette wird nach teilweiser Übereinstimmung des Filtermusters durchsucht, jedoch wird eine vollständige Übereinstimmung bevorzugt. |
REGEX_MatchType_PartialPreferFirstMatch |
Die Zeichenkette wird nach teilweiser Übereinstimmung des Filtermusters durchsucht. |
MatchOptions
Die MatchOptions geben an, welche zusätzlichen Übereinstimmungsregeln gelten sollen.
Eine binäre Oder-Kombination der folgenden Werte ist möglich:
MatchType |
Beschreibung |
REGEX_Match_NoMatchOption |
Es sollen keine zusätzlichen Übereinstimmungsregeln verwendet werden. |
REGEX_Match_AnchoredMatchOption |
Eine Übereinstimmung muss genau an der vorgegebenen Stelle Offset beginnen, auch wenn im Filtermuster kein entsprechenden Metazeichen enthalten ist. |
Bemerkungen
Versucht anhand des Filtermusters (regulärer Ausdruck) von rxPattern alle Übereinstimmungen in der Zeichenkette strSubject ab der Position Offset zu finden. Dabei wird die Art und Weise wie die Übereinstimmung bewertet werden soll durch MatchType und welche zusätzlichen Übereinstimmungsregeln gelten durch MatchOptions festgelegt. Das Ergebnis der Analyse wird als ein RegexIterator-Verweis in rxIterator abgelegt.
Wird das Ergebnis der Analyse nicht weiter benötigt, so sollte ein RegexIteratorClose für den RegexIterator-Verweis rxIterator aufgerufen werden, da ansonsten die Ergebnisse im Arbeitsspeicher verbleiben. Wird das Filtermuster rxPattern allerdings sowieso per RegexClose gelöscht, so kann auf zugehörige RegexIteratorClose Aufrufe verzichtet werden.
Ein gültiger RegexIterator-Verweis enthält nach dem Aufruf von RegexGlobalMatch einen oder mehrere RegexMatch-Verweise, die das Resultat der Übereinstimmungen beinhalten. Diese Kette von Übereinstimmungen kann nur einmalig, nach dem Erzeugen des RegexIterator-Verweis rxIterator, durch aufeinanderfolgende RegexIterartorNext Aufrufe abgerufen werden. Danach stellt sich der RegexIterator-Verweis rxIterator als leer dar.
Ein gültiger RegexIterator-Verweis kann nur mit RegexIterator-Funktionsausrufen verwendet werden.
Beispiel
value rxPattern, rxMatch, rxIterator; string strResult, strLastError; //Zusammenhängende numerische Zeichenfolgen erfassen if (! RegexCreate (rxPattern, "\\d+")) return (RegexGetLastError (strLastError)); end RegexGlobalMatch (rxPattern, rxIterator, "Test 123 xyz 345 23"); //es werden alle numerischen Zeichenfolgen erfasst = '123', '345' und '23' while (RegexIteratorHasNext (rxIterator)) //ist eine weitere Übereinstimmung vorhanden? rxMatch = RegexIteratorNext (rxIterator); //nächste Übereinstimmung auslesen strResult += RegexMatchCaptured (rxMatch); strResult += "\n"; end
Siehe auch RegexCreate, RegexSetPattern, RegexClose, RegexGetLastError, RegexMatch, RegexGlobalMatch, RegexMatchCaptured, RegexIteratorHasNext, RegexIteratorNext, RegexIteratorPeekNext