# Muster-Erkennung

foo

## Erkennen von Pfad-Segmenten

Angenommen wir möchten auf ein Ereignis warten, das die folgenden drei Pfad-Segmente enthält:

    sync  "/*/*/*"

Hiermit kann man auf jegliches Time State Ereignis syncen, dass aus exakt drei Pfadsegmenten besteht, unabhängig davon, wie genau der Inhalt der Segmente ist. Schauen wir uns das an einem Beispiel an:

`cue "/foo/bar/baz"` `cue "/foo/baz/quux"` `cue "/eggs/beans/toast"` `cue "/moog/synths/rule"`

Allerdings wird es nicht auf Ereignisse “matchen”, die weniger oder mehr Pfad-Segmente hätten. Die folgenden würden nicht erkannt und damit kein Ereignis triggern:

`cue "/foo/bar"` foo `cue "/eggs"`

Jeder `*` bedeutet irgendein Inhalt. Das heisst, wie können Pfade mit nur einem Segment mit `/*` oder Pfade aus fünf Segmenten mit `/*/*/*/*/*` erkennen

## Erkennen von Teilsegmenten

foo

`cue "/foo/bar/baz"` foo foo

Allerdings erkennt es nicht das Folgende:

foo foo foo

foo

## Erkennen von verschachtelten Pfadsegmenten

foo

`cue "/foo/bar/baz"` foo foo foo

## Erkennen von einzelnen Buchstaben

Du kann das `?` verwenden, um auf ein bestimmtes einzelnes Zeichen zu erkennen. `"/?oo/bar/baz"` passt auf:

`cue "/foo/bar/baz"` `cue "/goo/bar/baz"` `cue "/too/bar/baz"` `cue "/woo/bar/baz"`

## Erkennen von mehrfachen Wörtern

foo

foo foo foo

## Erkennen von mehrfachen Zeichen

foo

foo foo foo

foo

foo foo foo foo foo

## Kombinieren von Mustererkennungen

When calling `sync` or `get` you are free to combine matchers in any order you see fit to powerfully match any Time State event created by `cue` or `set`. Let’s look at a crazy example:

    sample :loop_amen

## OSC Pattern Matching

For those curious, these matching rules are based on the Open Sound Control pattern matching specification which is explained in detail here: http://opensoundcontrol.org/spec-1_0