Dokumentacja składni wyrażeń regularnych

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
\*
\+
\?
\(
\)
\|
\\
\!
\.
\[
\]
\^
\{
\}
\$
\#