Referência de sintaxe de expressão regular

Você pode definir e atribuir escopos de entrada personalizados usando a sintaxe de expressão regular de manuscrito que é compreendida por alguns dos reconhecedores de manuscrito da Microsoft. A sintaxe é um subconjunto do de Implementação da Linguagem de Expressão Regular no .NET Framework.

Há algumas diferenças na forma como as expressões regulares de manuscrito são usadas e a maneira como os outros tipos de expressões regulares são usados. A sintaxe de manuscrito é usada para especificar uma cadeia de caracteres exata que será correspondida pelo mecanismo de reconhecimento e não por uma sub-cadeia de caracteres. Por exemplo, a expressão regular s([a-z]+)p retornaria correspondências para "sopa", "stop", "instep" e "esôfago". Considerando que uma expressão regular de manuscrito equivalente, como s(!IS_ONECHAR)+p, corresponderia a "sopa" e "stop", mas não "instep" e "esôfago".

Expressões regulares de manuscrito não dão suporte a espaços sem interrupção dentro de expressões regulares. Ou seja, você não pode usar a entidade "nbsp" dentro de uma expressão regular de manuscrito.

As seções a seguir descrevem a sintaxe com mais detalhes.

Operadores válidos

Os operadores a seguir são válidos para criar expressões regulares para definir escopos de entrada para reconhecedores de manuscrito.

Operador Descrição
*
Operador unário postfix que significa zero ou mais ocorrências do operando.
+
Operador unário postfix que significa uma ou mais ocorrências do operando.
?
Operador unário postfix que significa zero ou uma ocorrência do operando.
|
Operador de infixo binário que significa "ou".
()
Usado para agrupar itens.

 

A implementação da Microsoft de expressões regulares para reconhecedores de manuscrito permite aplicativos repetidos de operadores unários de postfixo. Por exemplo, a** = (a*)* = a*, b?? = (b?)? = b?. Eles também permitem repetições não consecutivas, por exemplo: a*?* = ((a*)?)* = (a*)* = a*. Isso é diferente das expressões regulares do .NET Framework, que só permitem? operador a ser repetido.

Outra diferença das expressões regulares do .NET Framework é que a manuscrito de expressões regulares não dá suporte a uma expressão vazia designada com um par de parênteses vazio, ().

Nota

Somente caracteres na página de código 1252 têm suporte para expressões regulares de manuscrito.

 

Usando escopos de entrada

Você também pode usar o conjunto de escopos de entrada regulares definidos como parte da função SetInputScope em suas expressões regulares. Por exemplo, o valor de Mês (numérico) é IS_DATE_MONTH. A sintaxe para especificar um escopo de entrada como parte de uma expressão regular é anexar o valor enumerado do escopo de entrada com um parêntese aberto e um ponto de exclamação, (!, e colocar um parêntese de fechamento), no final. Por exemplo:

(!IS_DATE_MONTH)

Se você combinar o escopo de entrada IS_DEFAULT com o ORing com qualquer outro escopo de entrada, o efeito é que o reconhecedor pode retornar qualquer expressão única à qual o modelo de idioma padrão dá suporte (por exemplo, uma palavra do dicionário do sistema ou uma data) com ou sem pontuação ou qualquer valor que atenda ao restante da expressão regular passada para o reconhecedor.

Nota

Os seguintes membros do SetInputScope não têm suporte em expressões regulares: IS_PHRASELIST, IS_REGULAREXPRESSION, IS_SRGS IS_XML.

 

Operadores sem suporte

Não há suporte para os operadores de expressão regular a seguir ao criar expressões regulares de manuscrito.

Operador Descrição
.
Caractere de ponto.
[]
Colchetes. Use parênteses para agrupar itens.
{}
Colchetes curly.
(?# comentário) e #[ comentário ]
Comentários.
$
Caractere de sinal de dólar.
^
Caractere caret.
-
Caractere de traço. Deve OU (|) reunir todos os conjuntos de itens.

 

Caracteres de escape

Caracteres comuns, diferentes dos da tabela a seguir, correspondem a si mesmos. Ou seja, um "a" em uma expressão regular especifica que a entrada deve corresponder a um "a".

Outra diferença significativa na escrita de expressões regulares de manuscrito é que você só pode escapar de um conjunto limitado de caracteres dentro de uma expressão regular. A tabela a seguir descreve o conjunto permitido de caracteres que podem ser escapados. Qualquer outra tentativa de escapar de um caractere resultará em um erro gerado pelo reconhecedor.

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