Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zakresy danych wejściowych niestandardowych można definiować i przypisywać przy użyciu składni wyrażeń regularnych pisma ręcznego, która jest rozumiana przez niektóre z aparatów rozpoznawania pisma ręcznego firmy Microsoft. Składnia jest podzbiorem implementacji języka wyrażeń regularnych w programie .NET Framework.
Istnieją pewne różnice w sposobie użycia wyrażeń regularnych pisma ręcznego i sposobie użycia innych typów wyrażeń regularnych. Składnia pisma ręcznego służy do określania dokładnego ciągu, który zostanie dopasowany przez aparat rozpoznawania, a nie podciąg. Na przykład wyrażenia regularne ([a-z]+)p będą zwracać dopasowania dla "soup", "stop", "instep" i "esophagus". Mając na uwadze, że równoważne wyrażenie regularne pisma ręcznego, takie jak s(!IS_ONECHAR)+p, pasuje do "zupy" i "stop", ale nie "instep" i "przełyku".
Wyrażenia regularne pisma ręcznego nie obsługują spacji nienależących w wyrażeniach regularnych. Oznacza to, że nie można użyć jednostki "nbsp" w wyrażeniu regularnym pisma ręcznego.
W poniższych sekcjach opisano bardziej szczegółowo składnię.
Prawidłowe operatory
Następujące operatory są prawidłowe do tworzenia wyrażeń regularnych w celu zdefiniowania zakresów wejściowych dla rozpoznawania pisma ręcznego.
| Operator | Opis |
|---|---|
| * |
Operator jednoargumentowy postfiks oznaczający zero lub więcej wystąpień operandu. |
| + |
Operator jednoargumentowy postfiks oznaczający co najmniej jedno wystąpienie operandu. |
| ? |
Operator jednoargumentowy postfiks oznaczający zero lub jedno wystąpienie operandu. |
| | |
Binarny operator infiksu oznaczający "lub". |
| () |
Służy do grupowania elementów. |
Implementacja wyrażeń regularnych firmy Microsoft do rozpoznawania pisma ręcznego umożliwia wielokrotne stosowanie operatorów jednoargumentowych postfiksów. Na przykład a** = (a*)* = a*, b?? = (b?)? = b?. Umożliwiają one również powtórzenia inne niż kolejne, na przykład: a*?* = ((a*)?)* = (a*)* = a*. Różni się to od wyrażeń regularnych programu .NET Framework, które zezwalają tylko na ? operator, który ma być powtarzany.
Inną różnicą w wyrażeniach regularnych programu .NET Framework jest to, że ręczne pisanie wyrażeń regularnych nie obsługuje pustego wyrażenia wyznaczonego z pustą parą nawiasów ().
Nuta
Tylko znaki na stronie kodowej 1252 są obsługiwane w przypadku wyrażeń regularnych pisma ręcznego.
Korzystanie z zakresów wejściowych
Można również użyć zestawu zwykłych zakresów wejściowych zdefiniowanych jako część funkcji SetInputScope w wyrażeniach regularnych. Na przykład wartość month (liczbowa) jest IS_DATE_MONTH. Składnią określania zakresu wejściowego w ramach wyrażenia regularnego jest poprzedzanie wyliczonej wartości zakresu wejściowego otwartym nawiasem i wykrzyknikiem (!, a na końcu umieść nawias zamykający). Na przykład:
(!IS_DATE_MONTH)
Jeśli połączysz zakres danych wejściowych IS_DEFAULT przez funkcję ORing z innym zakresem danych wejściowych, efekt polega na tym, że rozpoznawanie może zwrócić dowolne pojedyncze wyrażenie obsługiwane przez domyślny model języka (na przykład jedno słowo ze słownika systemowego lub daty) z znakiem interpunkcyjnym lub bez niej albo dowolną wartość spełniającą resztę wyrażenia regularnego przekazanego do rozpoznawania.
Nuta
Następujące elementy członkowskie SetInputScope nie są obsługiwane w wyrażeniach regularnych: IS_PHRASELIST, IS_REGULAREXPRESSION, IS_SRGS, IS_XML.
Nieobsługiwane operatory
Następujące operatory wyrażeń regularnych nie są obsługiwane podczas tworzenia wyrażeń regularnych pisma ręcznego.
| Operator | Opis |
|---|---|
| . |
Znak kropki. |
| [] |
Nawiasy kwadratowe. Użyj nawiasu do grupowania elementów. |
| {} |
Nawiasy klamrowe. |
| (?# komentarz) i #[ komentarz ] |
Komentarze. |
| $ |
Znak dolara. |
| ^ |
Znak karetki. |
| - |
Znak kreski. Musi lub (|) razem wszystkie zestawy elementów. |
Znaki ucieczki
Zwykłe znaki, inne niż te w poniższej tabeli, pasują do siebie. Oznacza to, że "a" w wyrażeniu regularnym określa, że dane wejściowe powinny być zgodne z "a".
Kolejną znaczącą różnicą w pisaniu wyrażeń regularnych pisma ręcznego jest to, że można uniknąć ograniczonego zestawu znaków w wyrażeniu regularnym. W poniższej tabeli opisano dozwolony zestaw znaków, które mogą zostać uniknięci. Każda inna próba ucieczki znaku spowoduje wystąpienie błędu zgłaszanego przez rozpoznawanie.
| Znak |
|---|
| \* |
| \+ |
| \? |
| \( |
| \) |
| \| |
| \\ |
| \! |
| \. |
| \[ |
| \] |
| \^ |
| \{ |
| \} |
| \$ |
| \# |