Quickloox

Dal mondo Apple all'universo digitale, in visualizzazione rapida dell'ovvio

14 mag 2009

Una parentesi felice

Se hai un editor di testo che usa le espressioni regolari (regular expressions oppure grep oppure regex in un’interfaccia inglese), per esempio il gratuito TextWrangler sei sulla buona strada. Altrimenti perdi un’occasione.

Certo, vanno imparate. A livello alto sono arte pura, però la base è piuttosto semplice e basta un pochino di esercizio. TextWrangler e BBEdit hanno una eccellente sezione di help dedicata all’argomento, seppure inglese. In italiano si può partire da una pagina di Wikipedia.

A che cosa servono? A renderti felice.

Per esempio, ieri dovevo palleggiarmi un lungo elenco di indirizzi fisici completi di città e provincia, stile Belvedere di Spinello (KR), Montepulciano (SI), Poggibonsi (SI).

Era necessario radunarli per provincia e rielencarli, così:

Crotone Belvedere di Spinello

Siena Montepulciano Poggibonsi

È evidente che l’indicazione tra parentesi della provincia non serviva più. Le diverse sigle provinciali presenti nell’elenco erano una cinquantina, ripetute per alcune centinaia di località. Come cancellarle tutte in un colpo solo senza penare manualmente?

Cercando in BBEdit una espressione regolare per sostituirla con niente, ossia cancellarla:

([A-Z]{2})

(inizia con uno spazio)

Bella astrusa, a occhio. Se invece la si analizza con calma, istruzioni alla mano, si capisce che significa trova tutte le sequenze di caratteri che contengono uno spazio, una parentesi tonda aperta, due caratteri alfabetici maiuscoli e una parentesi tonda chiusa.

I backslash, </code>, indicano che le parentesi tonde vanno considerate come caratteri e non come contenitore (altrimenti sarebbero un comando dentro l’espressione, invece semplici caratteri cercati). La parentesi quadra racchiude un insieme di caratteri da cercare (A-Z è una abbreviazione di ABCDEFGHIJKLMNOPQRSTUVWXYZ) e la parentesi graffa contiene il moltiplicatore dell’insieme precedente (A-Z per due volte).

Le espressioni regolari sono infinitamente più potenti. Ma anche questa applicazione minima mi ha reso più felice per un minuto.

Commenta