Le miniguide di UbaWeb

Tradurre le espressioni regolari in italiano e viceversa...
con regexptrans

Premessa Torna su

20 novembre 2013 - GNU/Linux Ubuntu precise 12.04.3 LTS , kernel: 3.2.0-56-generic, Bash: 4.2.25(1) - Quando ci avviciniamo per la prima volta alle espressioni regolari, spesso siamo confusi e le riteniamo complicate da scrivere e da capire. Facendo un po di prove scatta un interruttore nella testa e ci rendiamo conto che la sintassi delle regex non ha niente di complicato, scrivere espressioni regolari ottimizzate per avere il massimo dell'efficienza è invece tutto un altro discorso! (non tratteremo come scrivere le regex ci sono moltissime guide in internet).
Fortunatamente ora esiste un programma (in realtà due) che serve per tradurre le regex in italiano e viceversa, questo può aiutare a comprendere facilmente come si devono scrivere e come si devono leggere le espressioni regolari.

Regexptrans Torna su

Vincenzo Lo Cicero ha avuto la brillante idea di scrivere il programma Regexptrans (installabile su piattaforma GNU/Linux, Windows e MacOS) grazie al quale si può tradurre la criptica sintassi delle espressioni regolari in italiano discorsivo e viceversa.
Installando regexptrans in realtà vengono installati due programmi; retoit (REegexp TO ITalian) e ittore (ITalian TO REgexp), entrambi devono essere eseguiti da linea di comando e supportano la sintassi delle regexp Perl-compatibile, compreso Unicode: classi di caratteri, gruppi e funzioni.

Tanto per fare un esempio minimo con retoit:

8-)retoit'abc.* 123' # L'espressione regolare 'abc.* 123' si legge: "a" seguito da "b" seguito da "c" seguito da zero o più qualunque carattere tranne nuova linea seguito da " " seguito da "1" seguito da "2" seguito da "3"

Per fare un esempio veloce dell'operazione inversa con ittore...
prima redirigo l'output del comando precedente sul file di testo prova1.txt con il semplice comando:
8-)retoit 'abc.* 123' > prova1.txt e poi eseguo ittore inserendo come argomento il file appena creato (contenente le istruzioni):

8-)ittore prova1.txt abc.* 123 8-)

Naturalmente il file con le istruzioni andrebbe creato a mano con le istruzioni che si vogliono tradurre in regexp.
Capito cosa fanno i programmi, passiamo all'installazione.

Installazione di regexptrans Torna su

Non avendo Windows, descriverò l'installazione su Linux; per Windows, vedere le note a fine sezione.

Per prima cosa va scaricato l'archivio compresso dalla pagina github
Una volta scompattato l'archivio "regexptrans-master.zip", aprire il terminale all'interno della directory "regexptrans-master" appena ottenuta e dare i seguenti comandi:

8-) ./configure 8-) make 8-) sudo make install

Finita la compilazione, i programmi: retoit e ittore, potranno essere eseguiti come visto nell'esempio precedente
(retoit 'regexp' e ittore nomeDelFileConIstruzioni).

Note Torna su

Installazione su Windows
È possibile compilare e installare il programma anche su Windows ma bisogna specificare la cartella di installazione tramite l'opzione "--prefix" di configure:

./configure --prefix=/c/prova ./make ./make install
Nell'esempio sopra, i programmi retoit e ittore vengono installati nella cartella "C:\Prova\bin".

Su Windows senza msys, retoit va usato passando la regexp entro virgolette doppie anziché singole (a meno che non si usi msys come terminale):
retoit "a|b"

Consigli
Prima di scrivere i file di istruzioni da dare in pasto a ittore fare pratica con retoit facendogli tradurre vari tipi di regexp, in modo da acquisire la giusta terminologia, l'uso delle parentesi tonde e quadre.
Le forme ".+?" e ".*?" vengono indicate nelle guide in vari modi (ungready, lazy, non ingorda, riluttante) in regexptrans viene usata la parola "riluttante"

Documentazione
Le istruzioni per l'installazione e l'uso di base sono nel file "README" dell'archivio compresso,
istruzioni particolari come: compilazione, configurazione, make clean, uninstall e altro sono nel file "INSTALL"
La discussione sul progetto del programma è a questo indirizzo.
La pagina del progetto su Github è questa.
Un'ottima guida sulle regex si può trovare a questo indirizzo.
Per ora è tutto.
Bye 8-)

Torna su
Sito realizzato da: UbaWeb di Giovanni Ubaldi

Licenza Creative Commons Tutto il contenuto di questo sito se non diversamente dichiarato è di Giovanni Ubaldi ed è distribuito con Licenza:

Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale.