Trova e sostituisci

Puoi navigare facilmente all’interno del documento utilizzando tastiera e mouse, ma se hai molte pagine da scorrere, ci vorrà un po' di tempo per trovare il testo specifico in un documento lungo. Richiederà più tempo quando desideri sostituire determinati caratteri o parole che hai utilizzato nel tuo documento. La funzionalità “Trova e sostituisci” ti consente di trovare una sequenza di caratteri in un documento e sostituirla con un’altra sequenza di caratteri.

Aspose.Words ti consente di trovare una stringa specifica o un modello di espressione regolare nel tuo documento e sostituirlo con un’alternativa senza installare e utilizzare applicazioni aggiuntive come Microsoft Word. Ciò accelererà molte attività di digitazione e formattazione, risparmiando potenzialmente ore di lavoro.

Questo articolo spiega come applicare la sostituzione delle stringhe e le espressioni regolari con il supporto dei metacaratteri.

Modi per trovare e sostituire

Aspose.Words fornisce due modi per applicare l’operazione di ricerca e sostituzione utilizzando quanto segue:

  1. Sostituzione stringa semplice – per trovare e sostituire una stringa specifica con un’altra, è necessario specificare una stringa di ricerca (caratteri alfanumerici) che verrà sostituita in base a tutte le occorrenze con un’altra stringa di sostituzione specificata. Entrambe le stringhe non devono contenere simboli. Tieni presente che il confronto tra stringhe può fare distinzione tra maiuscole e minuscole, oppure potresti non essere sicuro dell’ortografia o avere diverse ortografie simili.
  2. Espressioni regolari – per specificare un’espressione regolare per trovare le corrispondenze esatte della stringa e sostituirle in base all’espressione regolare. Tieni presente che una parola è definita come composta solo da caratteri alfanumerici. Se la sostituzione viene eseguita con la corrispondenza solo di parole intere e la stringa di input contiene simboli, non verrà trovata alcuna frase.

Inoltre, puoi utilizzare metacaratteri speciali con semplici sostituzioni di stringhe ed espressioni regolari per specificare interruzioni all’interno dell’operazione di ricerca e sostituzione.

Aspose.Words presenta la funzionalità di ricerca e sostituzione con il modulo aspose.words.replacing. Puoi lavorare con molte opzioni durante il processo di ricerca e sostituzione utilizzando la classe FindReplaceOptions.

Trova e sostituisci il testo utilizzando la sostituzione semplice delle stringhe

È possibile utilizzare uno dei metodi replace e replace_regex per trovare o sostituire una determinata stringa e restituire il numero di sostituzioni effettuate. In questo caso, è possibile specificare una stringa da sostituire, una stringa che sostituirà tutte le sue occorrenze, se la sostituzione fa distinzione tra maiuscole e minuscole e se verranno influenzate solo le parole autonome.

L’esempio di codice seguente mostra come trovare la stringa “CustomerName” e sostituirla con la stringa “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")

Puoi notare la differenza tra il documento prima di applicare la semplice sostituzione della stringa:

prima della semplice sostituzione della stringa

E dopo aver applicato la semplice sostituzione della stringa:

dopo la semplice sostituzione della stringa

Trova e sostituisci testo utilizzando le espressioni regolari

Un’espressione regolare è uno schema che descrive una determinata sequenza di testo. Supponiamo di voler sostituire tutte le doppie occorrenze di una parola con un’occorrenza di parola singola. Quindi puoi applicare la seguente espressione regolare per specificare il modello a doppia parola: ([a-zA-Z]+) \1.

Utilizza il metodo replace_regex per cercare e sostituire particolari combinazioni di caratteri impostando il parametro dell’espressione regolare come modello per trovare le corrispondenze.

L’esempio di codice seguente mostra come sostituire le stringhe che corrispondono a un modello di espressione regolare con una stringa di sostituzione specificata:

Puoi notare la differenza tra il documento prima di applicare la sostituzione della stringa con le espressioni regolari:

prima della sostituzione con espressioni regolari

E dopo aver applicato la sostituzione delle stringhe con le espressioni regolari:

dopo la sostituzione con espressioni regolari

Trova e sostituisci la stringa utilizzando i metacaratteri

È possibile utilizzare i metacaratteri nella stringa di ricerca o nella stringa di sostituzione se un particolare testo o frase è composto da più paragrafi, sezioni o pagine. Alcuni metacaratteri includono &P per un’interruzione di paragrafo, &B per un’interruzione di sezione, &M per un’interruzione di pagina e &l per un’interruzione di riga.

L’esempio di codice seguente mostra come sostituire il testo con paragrafi e interruzioni di pagina:

Puoi trovare e sostituire il testo nella sezione intestazione/piè di pagina di un documento Word utilizzando la classe HeaderFooter.

Il seguente esempio di codice mostra come sostituire il testo della sezione di intestazione nel documento:

Puoi notare la differenza tra il documento prima di applicare la sostituzione della stringa di intestazione:

prima di applicare la sostituzione della stringa di intestazione

E dopo aver applicato la sostituzione della stringa di intestazione:

dopo l'applicazione della sostituzione della stringa di intestazione

L’esempio di codice per sostituire il testo della sezione piè di pagina nel documento è molto simile all’esempio di codice di intestazione precedente. Tutto quello che devi fare è sostituire le seguenti due righe:

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

Con quanto segue:

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

Puoi notare la differenza tra il documento prima di applicare la sostituzione della stringa del piè di pagina:

prima di applicare la sostituzione della stringa del piè di pagina

E dopo aver applicato la sostituzione della stringa del piè di pagina:

dopo l'applicazione della sostituzione della stringa del piè di pagina

Ignora testo durante Trova e sostituisci

Durante l’applicazione dell’operazione di ricerca e sostituzione, puoi ignorare alcuni segmenti del testo. Pertanto, alcune parti del testo possono essere escluse dalla ricerca e la ricerca e sostituzione può essere applicata solo alle parti rimanenti.

Aspose.Words fornisce molte proprietà di ricerca e sostituzione per ignorare testo come ignore_deleted, ignore_fields e ignore_inserted.

L’esempio di codice seguente mostra come ignorare il testo all’interno delle revisioni di eliminazione:

Personalizza l’operazione Trova e sostituisci

Aspose.Words fornisce molte proprietà diverse per trovare e sostituire il testo, ad esempio applicando un formato specifico con proprietà apply_font e apply_paragraph_formats, utilizzando sostituzioni in modelli di sostituzione con proprietà use_substitutions e altro.

Il seguente esempio di codice mostra come evidenziare una parola specifica nel documento: