s_match |
Top Previous Next |
Testet eine Zeichenkette mit einem regulären Ausdruck. s_match untersucht eine Zeichenkette daraufhin, ob sie sich aus einem regulären Ausdruck herleiten läßt. Zur Beschreibung regulärer Ausdrücke siehe das Kapitel Begriffe in der Moskito Tabellenreferenz. Parameter <Muster> Der erste Parameter ist das Muster, nach dem gesucht wird. Die Sonderzeichen unterscheiden sich, abhängig von der Syntax, die per Schalter geändert werden kann. Folgende Sonderzeichen kann die Funktion auswerten, wenn kein Schalter angegeben wird: ? genau ein beliebiges Zeichen * beliebig viele beliebige Zeichen [<mehrere Zeichen>] genau ein Zeichen aus <mehrere Zeichen> [!<mehrere Zeichen>] genau ein Zeichen nicht in <mehrere Zeichen> [^<mehrere Zeichen>] genau ein Zeichen nicht in <mehrere Zeichen> [<mehrere Zeichen>*] beliebig viele Zeichen nur aus <mehrere Zeichen> mehrere Zeichen: mehrere Zeichen direkt hintereinander geschrieben aber auch sinnvolle Bereiche wie 0-9, a-f, B-D
Folgende Sonderzeichen kann die Funktion auswerten, wenn der Schalter /regex angegeben wird:
<Zeichenkette> Der zweite Parameter ist die Zeichenkette, die mit dem Muster verglichen wird. /regex Mit diesem Schalter wird s_match mit der erweiterten Regex-Syntax ausgeführt. Syntax s_match <Muster> <Zeichenkette > s_match ( <Muster> <Zeichenkette> ) Wenn s_match als Argument andere Funktionen wie z. B. Echo verwendet wird, dann muß die Syntax mit den Klammern verwendet werden. Rückgabewert
Beispiel In einigen Beispielen ist dem Befehl s_match der Befehl Echo vorangestellt, damit das Ergebnis der Funktion ausgegeben wird. Echo s_match ( abc abc ) 1 Echo s_match ( “plan[0-9]*.dbb“ “plan100a.dbb“) 1 Der reguläre Ausdruck beschreibt alle Zeichenketten, die mit „plan“ und einer Ziffer beginnen, gefolgt von beliebigen Zeichen, und mit „.dbb“ enden. „plan100a.dbb“ erfüllt diese Bedingungen. Echo s_match ( “plan[0-9]*.dbb“ “plan100a.hdf“) 0 Die Zeichenkette paßt nicht zum regulären Ausdruck, weil sie auf „hdf“ anstatt „dbb“ endet. s_match ort? <zeichenkette> paßt: ort1, ortA paßt nicht: ort200, ort_b s_match ort* <zeichenkette> paßt: ort1, ort200, orta, ort_b s_match ort[b-z]* <zeichenkette> paßt: ortb paßt nicht: ort1, ort200, ort_a, ortB s_match ort[bcdef]* <zeichenkette> paßt: ortb paßt nicht: ort1, ort200, ort_a, ortB s_match ort[0-9*] <zeichenkette> paßt: ort1, ort200 paßt nicht: ort_a, ortb s_match ort[!0-9] * <zeichenkette> paßt: ortb, ortB, ort_a paßt nicht: ort1, ort200, ort1A Bemerkung Muster und Zeichenkette müssen in Hochkommata gestellt werden, wenn sie Leerzeichen oder andere Zeichen beinhalten, die in der Kommandozeile eine Sonderfunktion innehaben. Runde Klammern z. B. werden als Funktionsaufruf interpretiert. Beim Aufruf der Funktion mit weniger als zwei Argumenten ist das Ergebnis 0 und die Kurzhilfe wird ausgegeben. Beim Aufruf mit mehr als zwei Argumenten werden die überzähligen ignoriert. Siehe auch
|