Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете определить и назначить пользовательские области ввода с помощью синтаксиса регулярного выражения рукописного ввода, который понимается некоторыми распознавателями рукописного ввода Майкрософт. Синтаксис представляет собой подмножество реализации языка регулярных выражений в .NET Framework.
Существуют некоторые различия в том, как используются рукописные выражения и способ использования других типов регулярных выражений. Синтаксис рукописного ввода используется для указания точной строки, которая будет соответствовать обработчику распознавания, а не подстроку. Например, регулярные выражения s([a-z]+)p возвращают совпадения для "суп", "стоп", "instep" и "esophagus". В то время как эквивалентное регулярное выражение, например s(!IS_ONECHAR)+p, будет соответствовать "суп" и "стоп", но не "instep" и "esophagus".
Рукописные регулярные выражения не поддерживают неразрывные пробелы в регулярных выражениях. То есть нельзя использовать сущность "nbsp" в регулярном выражении рукописного ввода.
В следующих разделах более подробно описан синтаксис.
Допустимые операторы
Следующие операторы допустимы для создания регулярных выражений для определения входных областей для распознавателей рукописного ввода.
| Оператор | Описание |
|---|---|
| * |
Унарный оператор postfix, обозначающий ноль или больше вхождения операнда. |
| + |
Унарный оператор postfix, обозначающий одно или несколько вхождений операнда. |
| ? |
Унарный оператор postfix, обозначающий ноль или одно вхождение операнда. |
| | |
Оператор двоичного infix означает "или". |
| () |
Используется для группирования элементов. |
Реализация регулярных выражений для распознавателей рукописного ввода позволяет повторяющимся приложениям унарных операторов постфикса. Например, a** = (a)* = a*, b?? = (b?)? = b?. Они также разрешают повторения, не последовательных, например: a*?* = ((a*)?)* = (a)* = a*. Это отличается от регулярных выражений .NET Framework, которые разрешают только те? оператор, повторяющийся.
Другое отличие от регулярных выражений .NET Framework заключается в том, что рукописное запись регулярных выражений не поддерживает пустое выражение, назначенное пустой парой круглых скобок ().
Заметка
Поддерживаются только символы в кодовойpage 1252 для рукописного ввода регулярных выражений.
Использование входных областей
Вы также можете использовать набор регулярных областей ввода, определенных как часть функции SetInputScope в регулярных выражениях. Например, значение месяца (числовое) равно IS_DATE_MONTH. Синтаксис для указания входной области в рамках регулярного выражения заключается в том, чтобы подготовить перечисленное значение входной области с открытой скобкой и восклицательным знаком (!, и поместить закрывающую скобку) в конце. Например:
(!IS_DATE_MONTH)
Если вы объединяете область ввода IS_DEFAULT с помощью ORing его с любой другой входной областью, это то, что распознаватель может возвращать любое одно выражение, которое поддерживает языковая модель по умолчанию (например, одно слово из системного словаря или даты) с препинанием или без препинания, или любое значение, соответствующее остальному регулярному выражению, переданное распознавательу.
Заметка
Следующие члены SetInputScope не поддерживаются в регулярных выражениях: IS_PHRASELIST, IS_REGULAREXPRESSION, IS_SRGS, IS_XML.
Неподдерживаемые операторы
Следующие операторы регулярных выражений не поддерживаются при создании рукописных выражений.
| Оператор | Описание |
|---|---|
| . |
Символ периода. |
| [] |
Квадратные скобки. Используйте скобки для группирования элементов. |
| {} |
Фигурные скобки. |
| (?# комментарий) и #[ комментарий ] |
Комментарии. |
| $ |
Знак доллара. |
| ^ |
Символ в хранях. |
| - |
Символ Тире. Должен ИЛИ (|) объединить все наборы элементов. |
Экранирование символов
Обычные символы, отличные от тех, которые в следующей таблице соответствуют себе. То есть значение "a" в регулярном выражении указывает, что входные данные должны соответствовать значению "a".
Еще одно существенное различие в написании регулярных выражений заключается в том, что можно использовать только ограниченный набор символов в регулярном выражении. В следующей таблице описан допустимый набор символов, которые можно экранировать. Любая другая попытка избежать символа приведет к возникновению ошибки распознавателя.
| Характер |
|---|
| \* |
| \+ |
| \? |
| \( |
| \) |
| \| |
| \\ |
| \! |
| \. |
| \[ |
| \] |
| \^ |
| \{ |
| \} |
| \$ |
| \# |