This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Zeichenketten und Zeichen /

Operationen auf ZeichenkettenZeichen in Zeichenketten

2.7.3 Zeichenkettenmuster

Sie können mit dem normalen Mathematica-Gleichheitstest == prüfen, ob zwei Zeichenketten identisch sind. Manchmal möchten Sie jedoch feststellen, ob eine bestimmte Zeichenkette zu einem bestimmten Zeichenkettenmuster paßt.

Mit Mathematica können Sie Zeichenkettenmuster definieren, die aus gewöhnlichen Zeichenketten bestehen, in denen bestimmte Zeichen als spezielle „Metazeichen" interpretiert werden. Dann können Sie mit der Funktion StringMatchQ herausfinden, ob eine bestimmte Zeichenkette zu einem von Ihnen definierten Zeichenkettenmuster paßt. Sie sollten jedoch beachten, daß Zeichenkettenmuster nichts mit den gewöhnlichen Mathematica-Mustern für Ausdrücke zu tun haben, die in Abschnitt 2.3 behandelt wurden.

Vergleichen von Zeichenketten

Das Zeichen * kann in einem Zeichenkettenmuster als ein Metazeichen benutzt werden, das für jede Folge alphanumerischer Zeichen steht. So würde beispielsweise das Zeichenkettenmuster "a*b" zu jeder Zeichenkette passen, die mit einem a beginnt, mit einem b endet und die dazwischen eine beliebige Anzahl anderer alphanumerischer Zeichen hat. Ähnlich würde "a*b*" zu jeder Zeichenkette passen, die mit a beginnt und eine beliebige Anzahl anderer Zeichen hat, inklusive mindestens einem b.

Die Zeichenkette paßt zum Zeichenkettenmuster, das Sie angaben.

In[1]:= StringMatchQ["aaaaabbbbcccbbb", "a*b*"]

Out[1]=

Die Art, wie * in Zeichenkettenmustern benutzt wird, ist analog zu der Art, wie es in vielen Betriebssystemen für Dateinamenmuster verwendet wird. Mathematica unterstützt jedoch auch andere Metazeichen für Zeichenkettenmuster, die dazu gedacht sind, zu verschiedenen Klassen von Mathematica-Symbolnamen zu passen.

Metazeichen, die in Zeichenkettenmustern benutzt werden

In Mathematica gibt es eine allgemeine Konvention, daß nur eingebaute Namen Großbuchstaben enthalten sollten. Wenn Sie diese Konvention beachten, so können Sie @ als ein Metazeichen zur Konstruktion von Zeichenkettenmustern verwenden, die zu von Ihnen definierten Namen passen, aber nicht zu eingebauten Namen.

Optionen zum Vergleich von Zeichenketten

Diese Zeichenketten stimmen nicht überein.

In[2]:= StringMatchQ["Schnabeltier", "Shcnabeltier"]

Out[2]=

Bei eingeschalteter SpellingCorrection werden diese Zeichenketten als übereinstimmend angesehen.

In[3]:= StringMatchQ["Schnabeltier", "Shcnabeltier",
SpellingCorrection -> True]

Out[3]=

Diese Zeichenketten stimmen überein, wenn Groß- und Kleinbuchstaben als äquivalent behandelt werden.

In[4]:= StringMatchQ["AAaaBBbb", "a*b*", IgnoreCase -> True]

Out[4]=

Operationen auf ZeichenkettenZeichen in Zeichenketten