Bezeichnung
PatternFindStr -- analysiert die Zeichenkette mit passendem Muster und Iterator-Funktion (V5.0)
Übersicht
func, state, val = PatternFindStr(s$, pat$[, encoding])
Beschreibung
Dieser Befehl kann in Verbindung mit der generischen For-Anweisung verwendet werden, um die Zeichenfolge in s$ nach dem in pat$ angegebenen Muster zu analysieren. Wegen der generischen For-Anweisung gibt PatternFindStr() drei Werte zurück: Eine Iterator-Funktion func, einen privaten Zustandswert state und einen Anfangswert val. Bei jedem Aufruf wird die Iterator-Funktion gemäß dem Muster pat$ die Zeichenkette s$ analysieren und die nächste Übereinstimmung zurückgeben. Wenn in pat$ nichts angegeben wird, dann wird bei jedem Aufruf eine Übereinstimmung gefunden.

Das in pat$ angegeben Muster muss dem Mustersyntax entsprechen, wie sie in der Dokumentation des Befehls PatternReplaceStr() beschrieben wird. Siehe PatternReplaceStr für Details.

Siehe Generische Version der For-Anweisung für Details.

Ab Hollywood 6.0 ist dieser Befehl auch in einer Version erhältlich, die ohne generische For-Anweisung verwendet werden kann. Also, wenn Sie nur das erste Resultat brauchen, welches Ihnen pat$ aus s$ liefert, dann möchten Sie vielleicht stattdessen PatternFindStrDirect() verwenden. Siehe PatternFindStrDirect für Details.

Mit dem optionalen Parameter encoding kann die zu verwendende Zeichencodierung festgelegt werden. Dies ist standardmäßig auf die Standardcodierung eingestellt, die mit SetDefaultEncoding() eingestellt ist. Siehe Zeichencodierungen für Details.

Siehe auch PatternFindStrShort().

Eingaben
s$
die zu analysierende Zeichenkette
pat$
Muster, mit dem die Zeichenkette analysiert wird
encoding
optional: Zeichencodierung, welche verwendet wird (voreingestellt ist die Standardcodierung) (V7.0)
Rückgabewerte
func
Iterator-Funktion
state
privater Zustandswert
val
Anfangswert
Beispiel
s$ = "Hello World from Hollywood"
For w$ In PatternFindStr(s$, "%a+") Do DebugPrint(w$)
Der obige Code analysiert alle Wörter in der Zeichenkette s$ und gibt eines pro Zeile aus.


t = {}
s$ = "Name=Andreas, Sex=Male, Nationality=German"
For k, v in PatternFindStr(s$, "(%w+)=(%w+)") Do t[k] = v
Das obige Beispiel sammelt alle Paare Schlüssel=Wert aus der angegebenen Zeichenfolge in einer Tabelle.

Navigation zeigen