Cerca nel blog

2017/09/01

Come sostituire singole lettere maiuscole/minuscole in LibreOffice Writer usando le regex

Ultimo aggiornamento: 2017/09/01 14:10.

Per ragioni che sarebbe lunghissimo spiegare qui, ho per le mani una serie enorme di file di testo in formato OpenDocument (ODT) che devo elaborare per lavoro con LibreOffice. Una delle elaborazioni è la sostituzione in massa delle lettere che accompagnano i numeri di riferimento sparsi ovunque nei testi. Per esempio, nella frase "il cirbione vagolato 29A entra nell'interocitore 47C ed apre gli sconfiotti 17A, 14F, 19G e 1H" (non fate domande, vi prego; è solo un esempio), tutti i numeri di riferimento devono essere cambiati in modo che la loro lettera sia in minuscolo e quindi diventino 29a, 47c, 17a, 14f, 19g e 1h.

Farlo a mano sarebbe una forma di masochismo che vorrei evitare, anche perché file come questi mi arriveranno ancora per parecchio tempo, per cui mi serve un automatismo che faccia questa sostituzione.

LibreOffice ha una funzione di ricerca e sostituzione potente, che include anche le regular expressions (regex), ma non ho trovato online nulla che spieghi come creare (nel regex ristretto offerto da LibreOffice) un unico comando “cerca tutte le lettere singole precedute da almeno una cifra e volgile in minuscolo”: così ho chiesto alla saggezza della Rete di trovarmi la regex adatta al problema ed è venuta fuori questa soluzione ad opera di Carlo A. Furia, alias @bugcounting. La condivido qui perché magari torna utile a qualcuno:


In pratica, in LibreOffice cerco tutte le cifre seguite immediatamente da una lettera maiuscola ([0-9]+[A-Z]); l’opzione Find All me le seleziona tutte, e poi chiudo la finestra di ricerca e do il comando di volgere in minuscolo tutto quello che è stato selezionato (Cmd-0 sul Mac): ta-da! Grazie Carlo!

Nessun commento: