Note:
Testo rimosso dalla rev 3 e
Testo aggiunto nella rev4
Questo e’ il compito per cui sono state inventate le espressioni regolari, o Regexp.
Usare le Regexp e’ semplice, ma puo’ diventare molto complicato se si usano le loro caratteristiche piu’ potenti.
Le espressioni regolari sono un argomento molto complesso, non sono completamente spiegate in questa pagina. Il nostro scopo e’ solo di individuare delle sottostringhe.
In generale, una regexp si crea in questo modo:>> rgx= /espressione/ => /espressione/o usando esplicitamente il costruttore della classe<
Regexppre>:
>> rgx= Regexp.new "espressione" => /espressione/per verificare che una stringa sia contenuta in un altra si</pre>
=~:
>>Come vedete, l’operatore restituisce l’indice della stringa dove ha inizio'la'la miaespressione' =~ rgx => 7 >> 'bau' =~ rgx => nil </pre>Comevedete,lespressione' =~ rgx => 7 >> 'operatore restituisce lbau'indice=~dellargx => nil
Regexp, oppure nil. Dunque possiamo scrivere cose del genere:
>> if
Regexp anche in un modo >> /a/.match 'ciao' => #<MatchData:0x27c9b90> >> /a/.match 'cio' => nilQuel</pre>
MatchData nil, di nuovo, quindi vale la considerazione fatta prima.
ancora sui confronti: le Regexp posseggono anche un operatore === che viene usato nei confronti case:
>> case'ciao' >> when'ciao' >> when /k/ >> puts 'trovata k' >> when /z/ >> puts 'trovata z' >> when /a/ >> puts 'trovata a' >> end trovata a => nil</pre></pre
o usando esplicitamente il costruttore della classeRegexp: