[MontelLUG] Libreoffice ed espressioni regolari

Syslac lmezzalira a gmail.com
Gio 3 Ago 2017 23:45:07 CEST


2017-08-03 16:27 GMT+02:00 Odeeno via montellug <montellug a montellug.it>:
> per questo caso ho provato ad usare questo ma non funziona:
> cerca: (?<=^Cod. [0-9]+)$
> sostituisci: " - "
>
> Ma così non trova nulla: neanche usando al posto \n o \p al posto di $
> Preciso che se faccio cerca: ^Cod. [0-9]+ trova tutti gli inizi di
> paragrafo interessati.

Ok, allora un paio di cose che potrebbero essere il tuo problema, ma
non è detto che lo siano:
* Scrivi che ^Cod. [0-9]+ funziona, ma non ci scrivi se ^Cod. [0-9]+$
funziona (cioè uguale alla prima che hai postato, ma senza il
lookbehind); se non funziona (ed immagino di no), la differenza
potrebbe stare nel fatto che con la prima, tu stai implicitamente
(perché la tua ricerca finisce lì) accettando del whitespace tra il numero ed il
fine riga, mentre con la seconda (e con la tua regexp originale)
pretendi che il fine riga sia subito a ridosso del numero;
diventerebbe quindi una cosa tipo (?<=^Cod. [0-9]+\s*)$
* Ho visto una cosa ambigua nella documentazione di Libreoffice per
cui pare che il $ non sia il fine riga ma il fine "paragrafo"; non
sapendo cosa intendono per paragrafo, io proverei a vedere cosa
succede con un delimitatore più certo, ad esempio \b (per il fine
parola); questo non è quello che cerchi perché te lo cambierebbe anche
in mezzo alla riga, però se la regexp pari pari, ma con il \b
funziona, allora sai per certo che il tuo problema è solo con il $.
* Non so se sia una buona idea legarsi anche alĺ'inizio riga via ^ nel
lookbehind, io proverei senza; al massimo hai qualche falso positivo
se hai righe che sfortunatamente finiscono con quel testo, ma se
intanto ti funziona poi puoi lavorarci; quindi come terzo tentativo
toglierei il ^.
* Nel dubbio, io proverei a scriverla anche proprio senza il
lookbehind, che se ci pensi bene non ti serve; puoi usare un capture
group standard, ed usare il risultato della cattura nella
sostituzione; però dubito sia questo il motivo per cui non ti va.

Bye,

Syslac


Maggiori informazioni sulla lista montellug