Localizar e substituir

Você pode navegar facilmente em seu documento usando teclado e mouse, mas se tiver muitas páginas para percorrer, demorará um pouco para encontrar um texto específico em um documento longo. Será mais demorado quando você quiser substituir determinados caracteres ou palavras que usou em seu documento. A funcionalidade “Localizar e substituir” permite localizar uma sequência de caracteres em um documento e substituí-la por outra sequência de caracteres.

Aspose.Words permite que você encontre uma string específica ou padrão de expressão regular em seu documento e substitua-o por uma alternativa sem instalar e usar aplicativos adicionais, como Microsoft Word. Isso irá acelerar muitas tarefas de digitação e formatação, potencialmente economizando horas de trabalho.

Este artigo explica como aplicar substituição de string e expressões regulares com suporte de metacaracteres.

Maneiras de encontrar e substituir

Aspose.Words fornece duas maneiras de aplicar a operação localizar e substituir usando o seguinte:

  1. Substituição simples de string – para localizar e substituir uma string específica por outra, você precisa especificar uma string de pesquisa (caracteres alfanuméricos) que será substituída de acordo com todas as ocorrências por outra string de substituição especificada. Ambas as strings não devem conter símbolos. Leve em consideração que a comparação de strings pode diferenciar maiúsculas de minúsculas ou você pode não ter certeza da ortografia ou ter várias grafias semelhantes.
  2. Expressões regulares – para especificar uma expressão regular para encontrar as correspondências exatas da string e substituí-las de acordo com sua expressão regular. Observe que uma palavra é definida como composta apenas por caracteres alfanuméricos. Se a substituição for executada com correspondência apenas de palavras inteiras e a string de entrada contiver símbolos, nenhuma frase será encontrada.

Além disso, você pode usar metacaracteres especiais com substituição simples de string e expressões regulares para especificar quebras na operação localizar e substituir.

Aspose.Words apresenta a funcionalidade localizar e substituir com o namespace Aspose.Words.Replacing. Você pode trabalhar com muitas opções durante o processo de localização e substituição usando a classe FindReplaceOptions.

Encontre e substitua texto usando substituição simples de string

Você pode usar um dos métodos Replace para localizar ou substituir uma string específica e retornar o número de substituições que foram feitas. Nesse caso, você pode especificar uma string a ser substituída, uma string que substituirá todas as suas ocorrências, se a substituição diferencia maiúsculas de minúsculas e se apenas palavras independentes serão afetadas.

O exemplo de código a seguir mostra como encontrar a string “CustomerName” e substituí-la pela string “James Bond”:

Você pode notar a diferença entre o documento antes de aplicar a substituição simples de string:

antes da substituição de string simples

E depois de aplicar a substituição simples de string:

após substituição de string simples

Encontre e substitua texto usando expressões regulares

Uma expressão regular (regex) é um padrão que descreve uma determinada sequência de texto. Suponha que você queira substituir todas as ocorrências duplas de uma palavra por uma única ocorrência de palavra. Em seguida, você pode aplicar a seguinte expressão regular para especificar o padrão de palavra dupla: ([a-zA-Z]+) \1.

Use o outro método Replace para pesquisar e substituir combinações específicas de caracteres, definindo o parâmetro Regex como o padrão de expressão regular para encontrar correspondências.

O exemplo de código a seguir mostra como substituir cadeias de caracteres que correspondem a um padrão de expressão regular por uma cadeia de caracteres de substituição especificada:

Você pode notar a diferença no documento antes de aplicar a substituição de string por expressões regulares:

antes da substituição por expressões regulares

E depois de aplicar a substituição de string por expressões regulares:

pós-substituição por expressões regulares

Encontre e substitua string usando metacaracteres

Você pode usar metacaracteres na sequência de pesquisa ou na sequência de substituição se um determinado texto ou frase for composto de vários parágrafos, seções ou páginas. Alguns dos metacaracteres incluem &p para quebra de parágrafo, &b para quebra de seção, &m para quebra de página e &eu para quebra de linha.

O exemplo de código a seguir mostra como substituir texto por parágrafo e quebra de página:

Você pode localizar e substituir texto na seção de cabeçalho/rodapé de um documento do Word usando a classe HeaderFooter.

O exemplo de código a seguir mostra como substituir o texto da seção de cabeçalho no seu documento:

Você pode notar a diferença entre o documento antes de aplicar a substituição da string de cabeçalho:

antes de aplicar a substituição da string do título

E depois de aplicar a substituição da string de cabeçalho:

após a aplicação da substituição da string do cabeçalho

O exemplo de código para substituir o texto da seção de rodapé em seu documento é muito semelhante ao exemplo de código de cabeçalho anterior. Tudo que você precisa fazer é substituir as duas linhas a seguir:

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

Com o seguinte:

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);

Você pode notar a diferença entre o documento antes de aplicar a substituição da string de rodapé:

antes de aplicar a substituição da string do rodapé

E depois de aplicar a substituição da string de rodapé:

após a aplicação da substituição da string do rodapé

Ignorar texto durante localizar e substituir

Ao aplicar a operação localizar e substituir, você pode ignorar certos segmentos do texto. Assim, certas partes do texto podem ser excluídas da pesquisa, e localizar e substituir podem ser aplicados apenas às partes restantes.

Aspose.Words fornece muitas propriedades de localização e substituição para ignorar texto como IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes e IgnoreInserted.

O exemplo de código a seguir mostra como ignorar texto dentro de revisões de exclusão:

Personalize a operação Localizar e Substituir

Aspose.Words fornece muitos properties diferentes para localizar e substituir texto, como aplicar formato específico com propriedades ApplyFont e ApplyParagraphFormats, usar substituições em padrões de substituição com propriedade UseSubstitutions, entre outros.

O exemplo de código a seguir mostra como destacar uma palavra específica no seu documento:

Aspose.Words permite usar a interface IReplacingCallback para criar e chamar um método personalizado durante uma operação de substituição. Você pode ter alguns casos de uso em que precisa personalizar a operação de localizar e substituir, como substituir o texto especificado por uma expressão regular por tags HTML, então basicamente você aplicará a substituição com a inserção de HTML.

Se você precisar substituir uma string por uma tag HTML, aplique a interface IReplacingCallback para personalizar a operação de localização e substituição para que a correspondência comece no início de uma execução com o nó de correspondência do seu documento. Vamos fornecer vários exemplos de uso de IReplacingCallback.

O exemplo de código a seguir mostra como substituir o texto especificado por HTML:

O exemplo de código a seguir mostra como destacar números positivos com a cor verde e números negativos com a cor vermelha:

O exemplo de código a seguir mostra como acrescentar um número de linha a cada linha: