RegexCreate

value RegexCreate ( value BYREF rxPattern, string strPattern, value PatternOptions = REGEX_Pattern_NoPatternOption );

Rückgabewert

Rückgabewert

Beschreibung

TRUE / true / 1

Der Regex-Verweis rxPattern wurde erfolgreich erstellt.

FALSE / false / 0

Das übergebene Filtermuster strPattern ist fehlerhaft.

Parameter

rxPattern

Konnte das Filtermuster strPattern erfolgreich ausgewertet werden, so wird rxPattern mit einem gültigem Regex-Verweis geladen.

Beinhaltet rxPattern beim Aufrufen einen gültigen Regex-Verweis, so wird dieser automatisch geschlossen, bevor ein neuer Regex-Verweis erzeugt wird.
Zur weiteren Verarbeitung muss dieser Regex-Verweis an weiterführende Regex-Funktionsaufrufen übergeben werden.

strPattern

Das Filtermuster zu dem das Regex-Verweis rxPattern erstellt werden soll.

PatternOptions

Die PatternOptions geben an, nach welchen zusätzlichen Regeln das Filtermuster Zeichenketten erkennen und auswerten soll.

Eine binäre Oder-Kombination der folgenden Werte ist möglich:

PatternOptions

Beschreibung

REGEX_Pattern_NoPatternOption
(Standardwert = 0x00)

Es werden keine zusätzlichen Regeln angewandt.

REGEX_Pattern_CaseInsensitiveOption

Bei der Analyse soll nicht auf Groß- oder Kleinschreibung geachtet werden.

REGEX_Pattern_DotMatchesEverythingOption

Das Punkt-Metazeichen (.) im Filtermuster soll für jedes Zeichen passen - also auch für Linefeeds (\n). Normalerweise stimmt das Punkt-Metazeichen nicht mit einem Linefeed überein.

REGEX_Pattern_MultilineOption

Zirkumflex- (^) und Dollar-Metazeichen ($) gelten nun auch jeweils unmittelbar nach und unmittelbar vor jedem Linefeed in der Auswertezeichenkette, sowie ganz am Anfang und ganz am Ende der Auswertezeichenkette.
Normalerweise kennzeichnet das Zirkumflex-Metazeichen den Anfang und das Dollar-Metazeichen das Ende innerhalb der Auswertezeichenkette - also ohne Berücksichtigung vorhandener Linefeeds die einzelne Zeilen trennen.

REGEX_Pattern_ExtendedPatternSyntaxOption

Alle Leerzeichen denen kein Escape (\) vorangestellt und die nicht in einer Zeichengruppe enthalten sind, werden nicht zur Analyse herangezogen.
Einem Doppelkreuz (#) dem kein Escape (\) vorangestellt und das nicht in einer Zeichengruppe enthalten ist, leitet einen Kommentar ein, der alle Zeichen bis zum Ende bzw. bis und einschließlich dem nächsten Linefeed enthält.
Kommentare werden bei der Analyse ignoriert.

REGEX_Pattern_DontCaptureOption

Unbenannte Gruppen werden nicht erfasst, auch wenn sie eine Übereinstimmung haben. Es werden nur benannte Gruppen, die eine Übereinstimmung besitzen, bei der Analyse als Ergebnisse erfasst. Das Auslesen der Indexgruppe 0 wird hiervon nicht berührt.

Bemerkungen

Erzeugt anhand des regulären Ausdrucks des Filtermusters strPattern das Regex-Objekt rxPattern, mit dem dann Zeichenketten ausgewertet werden können.

Ist der reguläre Ausdruck des Filtermusters strPattern fehlerhaft, so liefert RegexCreate FALSE als Rückgabewert. In diesem Fall kann mit RegexGetLastError eine Beschreibung des Fehlers abgerufen werden.

Wird ein Regex-Verweis nicht mehr verwendet, so sollte dieser mit RegexClose geschlossen werden. Wird ein RegexCreate mit einem gültigen Regex-Verweis in rxPattern aufgerufen, so wird dieser automatisch geschlossen, bevor rxPattern mit einem neuen Regex-Verweis geladen wird, daher kann hier auf ein explizites RegexClose verzichtet werden.
Beim Beenden eines laufenden Projekts schließt Victory automatisch alle nicht geschlossenen Regex-Verweise, d.h. wird ein RegexCreate im _InitApplication durchgeführt, so muss dieser nicht explizit im _ExitApplication geschlossen werden.

Beispiel

value rxPattern;
string strLastError;

//Zusammenhängende numerische Zeichenfolgen erfassen
if (! RegexCreate (rxPattern, "\\d+")) 
    return (RegexGetLastError (strLastError)); 
end

//Zusammenhängende numerische Zeichenfolgen als Gruppe 'temp' erfassen, denen die Zeichenkette "Temperatur:" voransteht, 
//wobei Groß-/Kleinschreibung nicht beachtet werden soll.
if (! RegexCreate (rxPattern, "Temperatur:(?<temp>\\d+)", REGEX_Pattern_CaseInsensitiveOption))
    return (RegexGetLastError (strLastError)); 
end
 

Die Regex-Funktionen

Siehe auch  RegexGetPattern, RegexSetPattern, RegexClose, RegexGetLastError