Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede definir y asignar ámbitos de entrada personalizados mediante la sintaxis de expresiones regulares de escritura a mano que algunos reconocedores de escritura a mano de Microsoft. La sintaxis es un subconjunto del implementación del lenguaje de expresiones regulares en .NET Framework.
Hay algunas diferencias en la forma en que se usan expresiones regulares de escritura a mano y la forma en que se usan los otros tipos de expresiones regulares. La sintaxis de escritura a mano se usa para especificar una cadena exacta que coincidirá con el motor de reconocimiento y no una subcadenada. Por ejemplo, la expresión regular s([a-z]+)p devolvería coincidencias para "soup", "stop", "instep" y "esfafago". Mientras que una expresión regular de escritura a mano equivalente como s(!IS_ONECHAR)+p coincidiría con "sopa" y "stop", pero no "instep" y "esfafa".
Las expresiones regulares de escritura a mano no admiten espacios no importantes dentro de expresiones regulares. Es decir, no puede usar la entidad "nbsp" dentro de una expresión regular de escritura a mano.
En las secciones siguientes se describe la sintaxis con más detalle.
Operadores válidos
Los operadores siguientes son válidos para crear expresiones regulares para definir ámbitos de entrada para reconocedores de escritura a mano.
Operador | Descripción |
---|---|
* |
Operador unario postfijo que indica cero o más apariciones del operando. |
+ |
Operador unario postfijo que indica una o varias apariciones del operando. |
? |
Operador unario postfijo que indica cero o una aparición del operando. |
| |
Operador infix binario que significa "o". |
() |
Se usa para agrupar elementos. |
La implementación de Microsoft de expresiones regulares para reconocedores de escritura a mano permite aplicaciones repetidas de operadores unarios postfijos. Por ejemplo, a** = (a*)* = a*, b?? = (b?)? = b?. También permiten repeticiones no consecutivas, por ejemplo: a*?* = ((a*)?)* = (a*)* = a*. Esto es diferente de las expresiones regulares de .NET Framework, que solo permiten ? operador que se va a repetir.
Otra diferencia de las expresiones regulares de .NET Framework es que las expresiones regulares de escritura a mano no admiten una expresión vacía designada con un par de paréntesis vacío, ().
Nota
Solo se admiten caracteres en la página de códigos 1252 para expresiones regulares de escritura a mano.
Uso de ámbitos de entrada
También puede usar el conjunto de ámbitos de entrada normales que se definen como parte de la función SetInputScope en las expresiones regulares. Por ejemplo, el valor de Month (numérico) es IS_DATE_MONTH. La sintaxis para especificar un ámbito de entrada como parte de una expresión regular es anteponer el valor enumerado del ámbito de entrada con un paréntesis abierto y un signo de exclamación, (!, y colocar un paréntesis de cierre, ), al final. Por ejemplo:
(!IS_DATE_MONTH)
Si combina el ámbito de entrada de IS_DEFAULT mediante ORing con cualquier otro ámbito de entrada, el efecto es que el reconocedor puede devolver cualquier expresión única que admita el modelo de lenguaje predeterminado (por ejemplo, una palabra del diccionario del sistema o una fecha) con o sin puntuación, o cualquier valor que cumpla el resto de la expresión regular pasada al reconocedor.
Nota
Los siguientes miembros de SetInputScope no se admiten en expresiones regulares: IS_PHRASELIST, IS_REGULAREXPRESSION, IS_SRGS IS_XML.
Operadores no admitidos
No se admiten los siguientes operadores de expresiones regulares al crear expresiones regulares de escritura a mano.
Operador | Descripción |
---|---|
. |
Carácter de punto. |
[] |
Corchetes. Use paréntesis para agrupar elementos. |
{} |
Llaves. |
(?# comment) y #[ comment ] |
Comentarios. |
$ |
Carácter de signo de dólar. |
^ |
Carácter de intercalación. |
- |
Carácter de guión. Debe combinar OR (|) todos los conjuntos de elementos. |
Caracteres de escape
Los caracteres normales, distintos de los de la tabla siguiente, coinciden con ellos mismos. Es decir, una "a" en una expresión regular especifica que la entrada debe coincidir con una "a".
Otra diferencia significativa en escribir expresiones regulares de escritura a mano es que solo se puede escapar un conjunto limitado de caracteres dentro de una expresión regular. En la tabla siguiente se describe el conjunto permitido de caracteres que se pueden escapar. Cualquier otro intento de escape de un carácter dará lugar a un error que el reconocedor produce.
Carácter |
---|
\* |
\+ |
\? |
\( |
\) |
\| |
\\ |
\! |
\. |
\[ |
\] |
\^ |
\{ |
\} |
\$ |
\# |