Encontrar y reemplazar

Puede navegar fácilmente dentro de su documento usando un teclado y un mouse, pero si tiene muchas páginas por las que desplazarse, le llevará bastante tiempo encontrar un texto específico en un documento largo. Tomará más tiempo cuando desee reemplazar ciertos caracteres o palabras que haya utilizado en su documento. La función “Buscar y reemplazar” le permite buscar una secuencia de caracteres en un documento y reemplazarla con otra secuencia de caracteres.

Aspose.Words le permite encontrar una cadena específica o un patrón de expresión regular en su documento y reemplazarlo con una alternativa sin instalar ni utilizar aplicaciones adicionales como Microsoft Word. Esto acelerará muchas tareas de escritura y formateo, lo que podría ahorrarle horas de trabajo.

Este artículo explica cómo aplicar el reemplazo de cadenas y expresiones regulares con soporte de metacaracteres.

Formas de buscar y reemplazar

Aspose.Words proporciona dos formas de aplicar la operación de buscar y reemplazar mediante lo siguiente:

  1. Reemplazo de cadena simple: para buscar y reemplazar una cadena específica por otra, debe especificar una cadena de búsqueda (caracteres alfanuméricos) que se reemplazará según todas las apariciones con otra cadena de reemplazo especificada. Ambas cadenas no deben contener símbolos. Tenga en cuenta que la comparación de cadenas puede distinguir entre mayúsculas y minúsculas, o puede que no esté seguro de la ortografía o tenga varias ortografías similares.
  2. Expresiones regulares: para especificar una expresión regular para encontrar las coincidencias exactas de cadenas y reemplazarlas de acuerdo con su expresión regular. Tenga en cuenta que una palabra se define como compuesta únicamente de caracteres alfanuméricos. Si el reemplazo se ejecuta con coincidencias solo de palabras completas y la cadena de entrada contiene símbolos, entonces no se encontrarán frases.

Además, puede utilizar metacaracteres especiales con reemplazo simple de cadenas y expresiones regulares para especificar pausas dentro de la operación de búsqueda y reemplazo.

Aspose.Words presenta la funcionalidad de buscar y reemplazar con el espacio de nombres Aspose.Words.Replacing. Puede trabajar con muchas opciones durante el proceso de búsqueda y reemplazo utilizando la clase FindReplaceOptions.

Buscar y reemplazar texto mediante el reemplazo de cadenas simples

Puede utilizar uno de los métodos Replace para buscar o reemplazar una cadena en particular y devolver la cantidad de reemplazos que se realizaron. En este caso, puede especificar una cadena que se reemplazará, una cadena que reemplazará todas sus apariciones, si el reemplazo distingue entre mayúsculas y minúsculas y si solo se verán afectadas las palabras independientes.

El siguiente ejemplo de código muestra cómo encontrar la cadena “CustomerName” y reemplazarla con la cadena “James Bond”:

Puede notar la diferencia entre el documento antes de aplicar el reemplazo simple de cadenas:

antes del reemplazo-de-cadena-simple

Y después de aplicar un simple reemplazo de cadena:

después del reemplazo-de-cadena-simple

Buscar y reemplazar texto usando expresiones regulares

Una expresión regular (regex) es un patrón que describe una determinada secuencia de texto. Supongamos que desea reemplazar todas las apariciones dobles de una palabra con una sola aparición de palabra. Luego puede aplicar la siguiente expresión regular para especificar el patrón de palabra doble: ([a-zA-Z]+) \1.

Utilice el otro método Replace para buscar y reemplazar combinaciones de caracteres particulares configurando el parámetro Regex como patrón de expresión regular para encontrar coincidencias.

El siguiente ejemplo de código muestra cómo reemplazar cadenas que coinciden con un patrón de expresión regular con una cadena de reemplazo especificada:

Puede notar la diferencia entre el documento antes de aplicar el reemplazo de cadenas con expresiones regulares:

antes-de-reemplazo-con-expresiones-regulares

Y después de aplicar el reemplazo de cadenas con expresiones regulares:

después del reemplazo con expresiones regulares

Buscar y reemplazar cadenas usando metacaracteres

Puede utilizar metacaracteres en la cadena de búsqueda o en la cadena de reemplazo si un texto o frase en particular está compuesto por varios párrafos, secciones o páginas. Algunos de los metacaracteres incluyen &pag para un salto de párrafo, &b para un salto de sección, &metro para un salto de página y &l para un salto de línea.

El siguiente ejemplo de código muestra cómo reemplazar texto con párrafo y salto de página:

Puede buscar y reemplazar texto en la sección de encabezado/pie de página de un documento de Word utilizando la clase HeaderFooter.

El siguiente ejemplo de código muestra cómo reemplazar el texto de la sección del encabezado en su documento:

Puede notar la diferencia entre el documento antes de aplicar el reemplazo de la cadena del encabezado:

antes de aplicar el reemplazo de la cadena de encabezado

Y después de aplicar el reemplazo de la cadena de encabezado:

después de aplicar el reemplazo de la cadena de encabezado

El ejemplo de código para reemplazar el texto de la sección de pie de página de su documento es muy similar al ejemplo de código de encabezado anterior. Todo lo que necesitas hacer es reemplazar las dos líneas siguientes:

HeaderFooter header = headersFooters[HeaderFooterType.HeaderPrimary];
header.Range.Replace("Aspose.Words", "Remove", options);

Con lo siguiente:

HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
int currentYear = System.DateTime.Now.Year;
footer.Range.Replace("(C) 2006 Aspose Pty Ltd.", $"Copyright (C) {currentYear} by Aspose Pty Ltd.", options);

Puede notar la diferencia entre el documento antes de aplicar el reemplazo de la cadena del pie de página:

antes de aplicar el reemplazo de la cadena del pie de página

Y después de aplicar el reemplazo de la cadena del pie de página:

después de aplicar el reemplazo de la cadena del pie de página

Ignorar texto durante buscar y reemplazar

Mientras aplica la operación de buscar y reemplazar, puede ignorar ciertos segmentos del texto. Por lo tanto, ciertas partes del texto se pueden excluir de la búsqueda y la búsqueda y reemplazo se pueden aplicar solo a las partes restantes.

Aspose.Words proporciona muchas propiedades de búsqueda y reemplazo para ignorar texto como IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes y IgnoreInserted.

El siguiente ejemplo de código muestra cómo ignorar el texto dentro de las revisiones de eliminación:

Personalizar la operación Buscar y reemplazar

Aspose.Words proporciona muchos properties diferentes para buscar y reemplazar texto, como aplicar un formato específico con propiedades ApplyFont y ApplyParagraphFormats, usar sustituciones en patrones de reemplazo con propiedades UseSubstitutions y otros.

El siguiente ejemplo de código muestra cómo resaltar una palabra específica en su documento:

Aspose.Words le permite utilizar la interfaz IReplacingCallback para crear y llamar a un método personalizado durante una operación de reemplazo. Es posible que tenga algunos casos de uso en los que necesite personalizar la operación de buscar y reemplazar, como reemplazar el texto especificado con una expresión regular con etiquetas HTML, por lo que básicamente aplicará el reemplazo insertando HTML.

Si necesita reemplazar una cadena con una etiqueta HTML, aplique la interfaz IReplacingCallback para personalizar la operación de buscar y reemplazar de modo que la coincidencia comience al comienzo de una ejecución con el nodo de coincidencia de su documento. Proporcionemos varios ejemplos del uso de IReplacingCallback.

El siguiente ejemplo de código muestra cómo reemplazar el texto especificado con HTML:

El siguiente ejemplo de código muestra cómo resaltar números positivos con color verde y números negativos con color rojo:

El siguiente ejemplo de código muestra cómo anteponer un número de línea a cada línea: