Espressioni regolari con Ruby e Oniguruma

1 luglio 2008

Il potere intrinseco delle espressioni regolari come strumento per aumentare la produttività e facilitare la stesura del codice è stato spesso sottovalutato. Le espressioni regolari vengono teorizzate nel 1940 e dal 1960 fanno il loro ingresso nel mondo dei computer. La popolarità del Perl (1990) trasforma questo tool da dominio esoterico di pochi guru a strumento essenziale per ogni sviluppatore.

In questo articolo ripercorreremo le caratteristiche e la sintassi delle espressioni regolari in chiave Ruby.

Oniguruma

Oniguruma è il nome del nuovo engine per le espressioni regolari di Ruby (standard dalla versione 1.9 ma già presente in alcune release successive alla 1.8.1). Questo engine offre alcuni miglioramenti rispetto al precedente come un miglior supporto per la gestione dei charset ed alcune funzionalità avanzate. Per verificare la presenza di Oniguruma è sufficiente eseguire il seguente frammento di codice:

def oniguruma?
  eval("/(?

Nel caso la vostra installazione corrente non supporti Oniguruma non preoccupatevi, in questo articolo specificherò espressamente quali esempi funzionano solamente con il nuovo engine.

Sintassi

In Ruby un espressione regolare viene delimitata dal carattere slash '/', ma può essere utilizzato anche il marcatore %r, ecco alcuni esempi:

EsempioRisultato
/Ruby/Ricerca la parola 'Ruby'
/[R|r]uby/Ricerca le parole 'Ruby' o 'ruby'
/^abc/Ricerca una stringa 'abc' ad inizio linea
%r(xyz$)Ricerca una stringa 'xyz' a fine linea
%r|[0-9]*|Ricerca una sequanza di zero o più cifre

È inoltre possibile specificare un modificatore (che consiste in una singola lettera) immediatamente dopo un espressione regolare, ecco i modificatori più famosi:

ModificatoreDescrizione
iIgnora la differenza fra maiuscole e minuscole
oEffettua eventuali sostituzioni una sola volta
mModalita multilinea (il . significa 'a capo')
xModalità estesa

Ad esempio la seguente espressione regolare ricerca per le parole 'Ruby', 'ruby', 'rUby', 'RUBY', etc.

/ruby/i

Se vuoi aggiornamenti su Espressioni regolari con Ruby e Oniguruma inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Espressioni regolari con Ruby e Oniguruma

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy