Nel capitolo 12 dedicato alle stringhe abbiamo già incontrato delle espressioni regolari che ora possiamo comprendere meglio, rivediamole. Per accedere a delle sottostringhe si può scrivere
> str = "Ciao mondo" => "Ciao mondo" > str[/w+s/] => "Ciao "
Sinonimo di [] è il metodo slice e il metodo slice!:
> str.slice(/w+s/) => "Ciao "
Allo stesso modo si utilizzano con index che restituisce l'indice della prima occorrenza della sottostringa espressa dal pattern:
> str.index(/[aeiou]/) => 1
analogo il comportamento di rindex che, a differenza di index, restituisce l'ultima occorrenza della sottostringa che verifica il pattern:
> str.rindex(/[aeiou]/) => 9
Possiamo usare le espressioni regolari anche come argomento dei metodi sub e gsub:
> str.gsub(/([aeiou])/, '(1)' )
=> "C(i)(a)(o) m(o)nd(o)"
> str.gsub(/s(w+)/){|c| c.upcase}
=> "Ciao MONDO"
Anche split può essere utilizzato passando come argomento un'espressione regolare:
> str.split(/s/) => ["Ciao", "mondo"]
Interessante è infine l'utilizzo delle regexp con scan che itera attraverso la stringa e inserisce tutti i risultati che verificano il pattern all'interno di un array:
> str.scan(/w+/) => ["Ciao", "mondo"]
Da questi esempi è lampante la notevole versatilità che le espressioni regolari aggiungono ai metodi della classe String.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: