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 módulo 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 e replace_regex 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”:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Hello _CustomerName_,")
print("Original document text: " + doc.range.text)

doc.range.replace("_CustomerName_", "James Bond", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))

print("Document text after replace: " + doc.range.text)

# Save the modified document
doc.save(docs_base.artifacts_dir + "FindAndReplace.simple_find_replace.docx")

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 é 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 método replace_regex para pesquisar e substituir combinações específicas de caracteres, definindo o parâmetro de expressão regular como padrão 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:

header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.HEADER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", options)

Com o seguinte:

header = headersFooters.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
header.range.replace("Aspose.Words", "Remove", 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 textos como ignore_deleted, ignore_fields e ignore_inserted.

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 muitas propriedades diferentes para localizar e substituir texto, como aplicar formato específico com propriedades apply_font e apply_paragraph_formats, usar substituições em padrões de substituição com propriedade use_substitutions e outros.

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