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

\das folgende Zeichen wird nicht als Sonderzeichen gewertet (dient zur Suche von ?*[!^])

Folgende Sonderzeichen kann die Funktion auswerten, wenn der Schalter /regex angegeben wird:

.genau ein beliebiges Zeichen
*das vorangegangene Zeichen beliebig oft
^die darauf folgenden Zeichen stehen am Anfang der Zeichenkette
$die vorangegangen Zeichen stehen am Ende der Zeichenkette
[<mehrere Zeichen>]genau ein Zeichen aus <mehrere Zeichen>
\das darauf folgende Zeichen wird nicht als Sonderzeichen gewertet (dient zur Suche von [ ] . * ^ $)

<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

Wert

Beschreibung

0

die Zeichenkette entspricht nicht dem regulären Ausdruck

1

die Zeichenkette entspricht dem regulären Ausdruck

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

Echo

s_compare

s_strlen