Syntaxreferenz für reguläre Ausdrücke

Sie können benutzerdefinierte Eingabebereiche definieren und zuweisen, indem Sie die Syntax des regulären Ausdrucks für handschriftliche Ausdrücke verwenden, die von einigen der Microsoft-Handschrifterkennungen verstanden wird. Die Syntax ist eine Teilmenge der Implementierung der regulären Ausdruckssprache in .NET Framework.

Es gibt einige Unterschiede in der Art und Weise, wie handschriftliche reguläre Ausdrücke verwendet werden, und die Art und Weise, wie die anderen Typen regulärer Ausdrücke verwendet werden. Die Schriftsyntax wird verwendet, um eine genaue Zeichenfolge anzugeben, die vom Erkennungsmodul und nicht von einer Unterzeichenfolge abgeglichen wird. Beispielsweise würde der reguläre Ausdruck s([a-z]+)p Übereinstimmungen für "Suppe", "Stop", "Instep" und "Ösophagus" zurückgeben. Während ein entsprechender regulärer Handschriftausdruck wie "s(!IS_ONECHAR)+p" mit "Suppe" und "Stopp" übereinstimmt, aber nicht "instep" und "Speiseröhre".

Handschriftliche reguläre Ausdrücke unterstützen keine nicht unterbrechenden Leerzeichen in regulären Ausdrücken. Das heißt, Sie können die Entität "nbsp" nicht innerhalb eines regulären Handschriftausdrucks verwenden.

In den folgenden Abschnitten wird die Syntax ausführlicher beschrieben.

Gültige Operatoren

Die folgenden Operatoren gelten für das Erstellen regulärer Ausdrücke zum Definieren von Eingabebereichen für Handschrifterkennungen.

Operator Beschreibung
*
Postfix unärer Operator, der null oder mehr Vorkommen des Operanden bedeutet.
+
Postfix unärer Operator, der ein oder mehrere Vorkommen des Operanden bezeichnet.
?
Postfix unärer Operator, der null oder ein Vorkommen des Operanden bedeutet.
|
Binary infix operator meaning "or".
()
Wird zum Gruppieren von Elementen verwendet.

 

Die Microsoft-Implementierung regulärer Ausdrücke für Handschrifterkennungen ermöglicht wiederholte Anwendungen von postfix-unären Operatoren. Beispiel: a** = (a*)* = a*, b?? = (b?)? = b?. Sie ermöglichen auch nicht aufeinander folgende Wiederholungen, z. B.: a*?* = ((a*)?)* = (a*)* = a*. Dies unterscheidet sich von regulären .NET Framework-Ausdrücken, die nur den ? operator to be repeated.

Ein weiterer Unterschied zu regulären Ausdrücken von .NET Framework besteht darin, dass handschriftliche reguläre Ausdrücke keinen leeren Ausdruck unterstützen, der mit einem leeren Paar Klammern () gekennzeichnet ist.

Anmerkung

Nur Zeichen auf der 1252-Codeseite werden für reguläre Ausdrücke für handschriftliche Ausdrücke unterstützt.

 

Verwenden von Eingabebereichen

Sie können auch den Satz regulärer Eingabebereiche verwenden, die als Teil der SetInputScope- funktion in Ihren regulären Ausdrücken definiert sind. Beispielsweise ist der Wert für Monat (numerisch) IS_DATE_MONTH. Die Syntax zum Angeben eines Eingabebereichs als Teil eines regulären Ausdrucks besteht darin, den Aufzählungswert des Eingabebereichs mit einer offenen Klammer und einem Ausrufezeichen( (!) vorzustellen und eine schließende Klammer am Ende zu platzieren. Zum Beispiel:

(!IS_DATE_MONTH)

Wenn Sie den IS_DEFAULT Eingabebereich kombinieren, indem Sie ihn mit einem anderen Eingabebereich verbinden, besteht der Effekt darin, dass die Erkennung entweder einen einzelnen Ausdruck zurückgeben kann, den das Standardsprachemodell unterstützt (z. B. ein Wort aus dem Systemwörterbuch oder ein Datum) mit oder ohne Interpunktion oder einem Beliebigen Wert, der den Rest des regulären Ausdrucks erfüllt, der an die Erkennung übergeben wird.

Anmerkung

Die folgenden Elemente von SetInputScope- werden in regulären Ausdrücken nicht unterstützt: IS_PHRASELIST, IS_REGULAREXPRESSION, IS_SRGS, IS_XML.

 

Nicht unterstützte Operatoren

Die folgenden Operatoren für reguläre Ausdrücke werden beim Erstellen regulärer Ausdrücke nicht unterstützt.

Operator Beschreibung
.
Punktzeichen.
[]
Eckige Klammern. Verwenden Sie Klammern zum Gruppieren von Elementen.
{}
Geschweifte Klammern.
(?# Kommentar) und #[ Kommentar ]
Kommentare.
$
Dollarzeichenzeichen.
^
Caret-Zeichen.
-
Strichzeichen. Muss ODER (|) alle Gruppen von Elementen zusammen.

 

Escapezeichen

Normale Zeichen, andere als die in der folgenden Tabelle, entsprechen sich selbst. Das heißt, ein "a" in einem regulären Ausdruck gibt an, dass die Eingabe mit einem "a" übereinstimmen soll.

Ein weiterer erheblicher Unterschied beim Schreiben regulärer Handschriftausdrücke besteht darin, dass Sie nur einen begrenzten Satz von Zeichen innerhalb eines regulären Ausdrucks escapen können. In der folgenden Tabelle wird der zulässige Satz von Zeichen beschrieben, die mit Escapezeichen versehen werden können. Jeder andere Versuch, ein Zeichen zu escapen, führt zu einem Fehler, der von der Erkennung ausgelöst wird.

Zeichen
\*
\+
\?
\(
\)
\|
\\
\!
\.
\[
\]
\^
\{
\}
\$
\#