[RisoIto] Inserimento/canc.ne di righe bianche con le regex

Discussioni sull'applicazione di videoscrittura
Rispondi
Spider
Messaggi: 5
Iscritto il: martedì 2 novembre 2021, 16:45

[RisoIto] Inserimento/canc.ne di righe bianche con le regex

Messaggio da Spider »

Ho cercato di prendere un po' di confidenza con le espressioni regolari (regex), ma ciò non mi ha ancora consentito di risolvere un problema che, di tanto in tanto, mi fa perdere parecchio tempo: inserire o cancellare delle righe bianche dopo avere importato del testo dal Web.
Nel file in allegato, il cui testo è tratto dal D.L. 221/2021, si può notare che il numero dell'articolo (Art. X) è attaccato al testo sovrastante, da cui dovrebbe essere staccato, ed è staccato dal suo titolo, a cui dovrebbe essere unito!
Nel titolo ho menzionato le regex, ma qualsiasi soluzione "massiva" va bene.
Grazie.
Allegati
Prova revisione formattazione testo di legge.odt
(19.97 KiB) Scaricato 71 volte
Ultima modifica di Spider il mercoledì 29 dicembre 2021, 4:04, modificato 1 volta in totale.
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8785
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Inserimento/cancellazione di righe bianche con le regex

Messaggio da charlie »

Ciao e benvenuto/a sul forum.
Se intanto ti vuoi presentare, farai cosa gradita. Puoi farlo in questa sezione -> viewforum.php?f=16

L’utente che apre un quesito si impegna: In caso di inosservanza saremo costretti ad azioni di “richiamo”, sospensione o chiusura del profilo utente.

Buon proseguimento.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2991
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Inserimento/cancellazione di righe bianche con le regex

Messaggio da lucky63 »

.
Potresti utilizzare il Trova/Sostituisci (abilitando la casella "Espressioni regolari" regolari) come segue.

Primo passaggio. Sostituire qualsiasi simbolo di paragrafo vuoto (^$) con nulla ...
01.png
Secondo passaggio. Sostituire la stringa "Art. " (notare anche la presenza dello spazio dopo il punto) con se stessa preceduta dal carattere di interruzione (\n) ...
02.png
Allego il risultato ottenuto.
.
Allegati
Test - ProvaRevisioneFormattazioneTestoDiLegge.odt
(29.05 KiB) Scaricato 75 volte
Spider
Messaggi: 5
Iscritto il: martedì 2 novembre 2021, 16:45

Re: Inserimento/cancellazione di righe bianche con le regex

Messaggio da Spider »

Grazie lucky63, mi sei stato di ispirazione cambiando l'approccio al problema, che non doveva essere legato alla selezione e gestione del carattere di fine paragrafo ($), perché, come ho scoperto ieri (https://wiki.documentfoundation.org/Faq/Writer/054/it), OpenOffice non selezionerà mai quel carattere.
Ebbene, per cominciare vorrei rifinire il lavoro di lucky63, che (vedi articolo 11-decies, comma 2, del testo del file Test - ProvaRevisioneFormattazioneTestoDiLegge.odt) ha delle leggere controindicazioni. L'impostazione corretta del "Secondo passaggio" potrebbe essere quella dell'immagine seguente:
Rev.Form.L.01.PNG
Inoltre, poiché nelle intenzioni iniziali (seppure non manifestate) vi era quella di mantenere distanziati titolo dell'articolo e relativo testo, si rende opportuno il seguente
Terzo passaggio (a partire dal file Test - ProvaRevisioneFormattazioneTestoDiLegge.odt), consistente nell'individuazione dei capoversi "comma 1", che possono o no (metacarattere "*"), essere preceduti dalle parentesi tonde ("(("), che il portale Normattiva utilizza per designare le parti integrate o modificate di un testo normativo, con successiva loro sostituzione con il medesimo contenuto [$1 = (\(*1)] preceduto da un "Invio" (\n):
Rev.Form.L.02.PNG
I più pignoli noteranno che alcuni titoli di articolo non sono formattati con l'allineamento centrato (in realtà l'imprecisione era a monte, nel testo tratto dal Web).
La soluzione al problema è ancora una regex, che per la sua complessità non approfondisco, che ha lo scopo di:
- identificare i paragrafi che iniziano con le parentesi tonde, escludendo quelli diversi dai titoli di articolo (caratterizzati da un numero iniziale del comma: 1. ... o 2. ..., ecc.) mediante l'impostazione della condizione che dopo di esse (delle parentesi tonde) non vi siano cifre sino alla fine del paragrafo;
- sostituire gli stessi con il medesimo contenuto [$1 = ^(\(+ ... {2,})], ma con un allineamento centrato, impostato con il bottone Formato.
La sintassi dei comandi è la seguente:
Rev.Form.L.03.PNG
N.B.: Ricordarsi sempre di flaggare la casella di controllo Espressione regolare e, in caso di testi non omogenei, dove le modifiche richieste potrebbero avere risultati sgraditi in altre sezioni del testo, anche quella Solo nella selezione, dopo avere selezionato l'area interessata dalle modifiche.

Per finire, allego (... o meglio, avrei voluto allegare, ma ho scoperto di avere il limite di 3 allegati :( ) il file revisionato, in cui ho inserito un'ulteriore parte di testo per capire la complessa articolazione del testo originale.
OpenOffice 4.1.10 su Windows 7 HP 64 bit
Rispondi