Version 11
Match regex (Muster; spezString{; Start; Pos_gefunden; Länge_gefunden; *}) Boolean
Parameter | Typ | Beschreibung | |
Muster | Text | Regular expression | |
spezString | Text | String, in dem die Suche | |
ausgeführt wird | |||
Start | Zahl | Position im String, wo die Suche beginnt | |
Pos_gefunden | Lange GZ Var | Arr | Position des Vorkommens | |
Länge_gefunden | Lange GZ Var | Arr | Länge des Vorkommens | |
* | * | Mit *: Nur Suche an der | |
angegebenen Position | |||
Funktionsergebnis | Boolean | Wahr = Suche hat 1 Vorkommen gefunden; | |
sonst Falsch. |
Beschreibung
Mit der Funktion Match regex können Sie prüfen, ob eine Zeichenkette mit den analysierenden Regeln einer Meta-Sprache, genannt regular expression" oder rational expression", übereinstimmt. Diese werden in der Regel mit dem Begriff regex abgekürzt.
In Muster übergeben Sie den regulären Ausdruck für die Suche. Das ist eine Zeichenkette, die den Ausdruck mit spezifischen Zeichen beschreibt.
In spezString übergeben Sie den String für die Suche nach dem regulären Ausdruck.
In Start geben Sie die Position für den Suchbeginn der Suche in spezString an.
Sind die Parameter Pos_gefunden und Länge_gefunden Variablen, gibt die Funktion darin Position und Länge des Vorkommens zurück. Bei Arrays gibt die Funktion in Element Null der Arrays Position und Länge des Vorkommens zurück, in den darauffolgenden Elementen Position und Länge der Gruppen, die der reguläre Ausdruck gefunden hat.
Mit dem optionalen Parameter * legen Sie fest, dass die Suche nur an der in Start angegebenen Position ausgeführt werden soll, ohne weiter zu suchen, falls hier nichts Passendes gefunden wird.
Die Funktion gibt Wahr zurück, wenn die Suche ein Vorkommen gefunden hat.
Weitere Informationen über Regex finden Sie im Internet unter:
http://en.wikipedia.org/wiki/Regular_expression
Weitere Informationen zur Syntax regulärer Ausdrücke im Parameter Muster finden Sie im Internet unter:
http://www.icu-project.org/userguide/regexp.html
Beispiele
Diese Funktion bietet verschiedene Einsatzmöglichkeiten:
1. Nach kompletter Übereinstimmung suchen:
vfound:=Match regex(pattern;mytext)
QUERY BY FORMULA([Employees];Match regex(".*smith.*"; [Employees]name))
2. In Text nach Start suchen:
vfound:=Match regex( pattern;mytext; start; pos_found; length_found)
Beispiel zur Anzeige aller Tags in $1:
start:=1 Repeat vfound:=Match regex("<.*>";$1;start;pos_found;length_found) If(vfound) ALERT(Substring($1;pos_found;length_found)) start:=pos_found+length_found End if Until(Not(vfound))
3 .Suche mit Unterstützung von "capture groups":
vfound:=Match regex( pattern;mytext; start; pos_found_array; length_found_array)
ARRAY LONGINT(pos_found_array;0) ARRAY LONGINT(length_found_array;0) vfound:=Match regex("(.*)stuff(.*)";$1;1;pos_found_array; length_found_array) If(vfound) $group1:=Substring($1;pos_found_array{1};length_found_array{1}) $group2:=Substring($1;pos_found_array{2};length_found_array{2}) End if
4. Suche beschränkt auf das Muster an der angegebenen Position:
Fügen Sie am Ende einer der beiden vorigen Syntaxarten einen Stern hinzu.
vfound:=Match regex("a.b";"---a-b---";1;$pos_found;$length_found) `returns True vfound:=Match regex("a.b";"---a-b---";1;$pos_found;$length_found;*) `returns False vfound:=Match regex("a.b";"---a-b---";4;$pos_found;$length_found;*) `returns True
Hinweis: Die zurückgegebenen Positionen und Längen sind nur im Modus Unicode von Bedeutung oder wenn der Text in Bearbeitung vom 7-bit ASCII Typ ist.
Fehler verwalten
Tritt ein Fehler auf, erzeugt die Funktion einen Fehler, den Sie über eine mit dem Befehl ON ERR CALL installierte Methode abfangen kön-nen.
Keyword Support in 4D v11 SQL, Using Match regex to Import CSV data