4D v16.3

Match regex

Home

 
4D v16.3
Match regex

Match regex 


 

Match regex ( Muster ; spezString ; Start {; Pos_gefunden ; Länge_gefunden}{; *} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Muster  Text in Regulärer Ausdruck
spezString  Text in String, in dem die Suche ausgeführt wird
Start  Lange Ganzzahl in Position im String, wo die Suche beginnt
Pos_gefunden  Array Lange Ganzzahl, Variable Lange Ganzzahl in Position des Vorkommens
Länge_gefunden  Array Lange Ganzzahl, Variable Lange Ganzzahl in Länge des Vorkommens
Operator in Mit *: Nur Suche an der angegebenen Position
Funktionsergebnis  Boolean in True = Suche hat 1 Vorkommen gefunden; sonst False.
Match regex ( Muster ; Zeichenkette ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Muster  Text in regulärer Ausdruck (komplette Übereinstimmung)
Zeichenkette  Text in Zeichenkette, in der eine Suche ausgeführt wird
Funktionsergebnis  Boolean in True = Suche hat ein Vorkommen gefunden, sonst False

Die Funktion Match regex prüft, 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 an, ab der die Suche starten soll.

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 True 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

Nach kompletter Übereinstimmung suchen (einfache Syntax):

vfound:=Match regex(pattern;mytext)

 QUERY BY FORMULA([Employees];Match regex(".*smith.*";[Employees]name))

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))

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

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.

Tritt ein Fehler auf, erzeugt die Funktion einen Fehler, den Sie über eine mit dem Befehl ON ERR CALL installierte Methode abfangen können.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: String
Nummer: 1019

Dieser Befehl ändert die Systemvariable ErrorThis command can be run in preemptive processesDer Unicode Modus betrifft diesen Befehl

 
GESCHICHTE 

Erstellt: 4D v11 SQL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)