> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Uso de expresiones regulares con ABBYY FineReader Engine

> Referencia del alfabeto de expresiones regulares de ABBYY FineReader Engine utilizado en diccionarios basados en regex: rangos de caracteres, repetición, alternancia y expresiones de ejemplo.

Las expresiones regulares se usan en los [diccionarios basados en expresiones regulares](/es/fine-reader/engine/guided-tour/advanced-techniques/working-with-dictionaries) para definir qué palabras están permitidas en un idioma y cuáles no.

<div id="regular-expression-rules">
  ## Reglas de expresiones regulares
</div>

El alfabeto de expresiones regulares de ABBYY FineReader Engine se describe en la siguiente tabla:

| Nombre del elemento                      | Símbolo convencional de expresión regular | Ejemplos de uso y explicaciones                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| ---------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | --------------------------------------- |
| Cualquier carácter                       | .                                         | c.t — denota palabras como "cat", "cot"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |     |                                         |
| Carácter de un rango de caracteres       | \[]                                       | \[b-d]ell — denota palabras como "bell", "cell", "dell" <br /> \[ty]ell — denota las palabras "tell" y "yell"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |     |                                         |
| Carácter fuera de un rango de caracteres | \[^]                                      | \[^y]ell — denota palabras como "dell", "cell", "tell", pero excluye "yell" <br /> \[^n-s]ell — denota palabras como "bell", "cell", pero excluye "nell", "oell", "pell", "qell", "rell" y "sell"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |     |                                         |
| O                                        |                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | c(a | u)t — denota las palabras "cat" y "cut" |
| 0 o más apariciones seguidas             | \*                                        | 10\* — denota los números 1, 10, 100, 1000, etc.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |     |                                         |
| 1 o más apariciones seguidas             | +                                         | 10+ — permite los números 10, 100, 1000, etc., pero excluye 1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |     |                                         |
| Letra o dígito                           | \[0-9a-zA-Z]                              | \[0-9a-zA-Z] — permite un solo carácter;<br /> \[0-9a-zA-Z]+ — permite cualquier palabra                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |     |                                         |
| Letra latina mayúscula                   | \[A-Z]                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Letra latina minúscula                   | \[a-z]                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Letra cirílica mayúscula                 | \[А-Я]                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Letra cirílica minúscula                 | \[а-я]                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Dígito                                   | \[0-9]                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Espacio                                  | \[\s]                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Carácter del sistema                     | @                                         |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     |                                         |
| Palabra del diccionario                  | @(Dictionary)                             | El parámetro Dictionary establece la ruta al diccionario de usuario del que deben tomarse las palabras. Ejemplo de ruta en Linux: @(/opt/MyDictionary.amd) Ejemplo de ruta en macOS: "/Users/user/Documents/MyDictionary.amd En Windows, las barras invertidas de la ruta deben duplicarse. Por ejemplo: @(D:\MyFolder\MyDictionary.amd). <Note> Algunos lenguajes de programación (como C++) requieren escapar las barras invertidas en los literales de cadena. En este caso, necesitará dos barras invertidas escapadas, lo que dará como resultado una barra invertida cuadruplicada. El ejemplo anterior se verá así en C++: <br />`L"@ D:\\\\MyFolder\\\\MyDictionary.amd)"` </Note> |     |                                         |

<Note>
  * Algunos caracteres utilizados en las expresiones regulares son "auxiliares",
    es decir, se usan con fines del sistema. Como puede ver en la lista anterior,
    estos caracteres incluyen corchetes, puntos, etc. Si desea introducir un
    carácter auxiliar como uno normal, anteponga una barra invertida (). Ejemplo: \[t-v]x+
    denota palabras como "tx", "txx", "txxx", etc., "ux", "uxx", etc., pero
    \[t-v]x+ denota palabras como "\[t-v]x", "\[t-v]xx", "\[t-v]xxx", etc. -
    Si necesita agrupar determinados elementos de una expresión regular, use
    paréntesis. Por ejemplo, (a|b)+|c denota "c" y cualquier combinación como
    "abbbaaabbb", "ababab", etc. (una palabra de cualquier longitud distinta de
    cero en la que puede haber cualquier cantidad de a y b en cualquier orden),
    mientras que a|b+|c denota "a", "c" y "b", "bb", "bbb", etc.
</Note>

<div id="sample-regular-expressions">
  ## Expresiones regulares de ejemplo
</div>

**Expresión regular para fechas**

El número que indica el día puede constar de un dígito (p. ej., 1, 2, etc.) o de dos dígitos (p. ej., 02, 12), pero no puede ser cero (00 o 0). La expresión regular para el día tendrá entonces este aspecto: ((|0)\[1-9])|(\[12]\[0-9])|(30)|(31).

La expresión regular para el mes tendrá este aspecto: ((|0)\[1-9])|(10)|(11)|(12).

La expresión regular para el año tendrá este aspecto: (((19)|(20))\[0-9]\[0-9])|(\[0-9]\[0-9]).

Lo que queda es combinar todo esto y separar los números con un punto (p. ej., 1.03.1999). El punto es un signo auxiliar, por lo que debemos poner una barra invertida () delante. La expresión regular para la fecha completa tendrá entonces este aspecto:

(((|0)\[1-9])|(\[12]\[0-9])|(30)|(31)).(((|0)\[1-9])|(10)|(11)|(12)).((((19)|(20))\[0-9]\[0-9])|(\[0-9]\[0-9]))

**Expresión regular para direcciones de correo electrónico**

Puede definir fácilmente un patrón para representar direcciones de correo electrónico. La expresión regular para una dirección de correo electrónico puede tener este aspecto:

\[a-zA-Z0-9\_-.]+@\[a-zA-Z0-9.-]+.\[a-zA-Z]+

<div id="using-for-data-capture">
  ## Uso para la captura de datos
</div>

Si utiliza expresiones regulares en el reconocimiento a nivel de campo, por lo general solo necesita reconocer las palabras que coinciden exactamente con la expresión regular. En este caso, recomendamos crear un idioma independiente para reconocer los campos y establecer las siguientes propiedades para dicho idioma:

1. Solo se deben permitir como resultados de reconocimiento las palabras del diccionario: establezca la propiedad [IBaseLanguage::AllowWordsFromDictionaryOnly](/es/fine-reader/engine/api-reference/language-related-objects/baselanguage#allowwordsfromdictionaryonly) en TRUE. Esto es necesario para la coincidencia exacta.
2. El conjunto de letras del idioma de reconocimiento debe contener únicamente los caracteres incluidos en la expresión regular: especifique la propiedad [IBaseLanguage::LetterSet](/es/fine-reader/engine/api-reference/language-related-objects/baselanguage/letterset-property). Esto es necesario porque los caracteres del alfabeto del idioma pueden reconocerse incluso si no se ajustan a la expresión regular.
3. Establezca la propiedad [IBaseLanguage::IsNaturalLanguage](/es/fine-reader/engine/api-reference/language-related-objects/baselanguage#isnaturallanguage) en FALSE.

<div id="windows-samples">
  ## Ejemplos para Windows
</div>

<Accordion title="Código C#">
  ```csharp theme={null}
  // Objeto global de ABBYY FineReader Engine
  FREngine.IEngine engine;
  // Objeto LanguageDatabase
  FREngine.ILanguageDatabase languageDatabase = engine.CreateLanguageDatabase();
  // Crear un objeto TextLanguage
  FREngine.ITextLanguage textLang = languageDatabase.CreateTextLanguage();
  // Crear un objeto BaseLanguage y especificar la configuración
  FREngine.IBaseLanguage baseLang = textLang.BaseLanguages.AddNew();
  baseLang.set_LetterSet(FREngine.BaseLanguageLetterSetEnum.BLLS_Alphabet, "$0123456789,.");
  baseLang.IsNaturalLanguage = false;
  baseLang.AllowWordsFromDictionaryOnly = true;
  // Crear un nuevo diccionario basado en expresiones regulares y asociarlo al idioma
  FREngine.IDictionaryDescription dictDescr = baseLang.DictionaryDescriptions.AddNew(FREngine.DictionaryTypeEnum.DT_RegularExpression);
  // Establecer la expresión regular
  dictDescr.GetAsRegExpDictionaryDescription().SetText(@"[$0-9,.]+");
  ```
</Accordion>

<div id="see-also">
  ## Consulte también
</div>

[Trabajar con diccionarios](/es/fine-reader/engine/guided-tour/advanced-techniques/working-with-dictionaries)

[RegExpDictionaryDescription](/es/fine-reader/engine/api-reference/language-related-objects/regexpdictionarydescription)
