#!/usr/bin/env ruby # This code comes from http://ruby-it.org/pages/Espressioni+Regolari+Alternanza # Check the page for copyright notice and explanations >> rgx= /ciao|bau|miao/ => /ciao|bau|miao/ >> 'ciao'=~ rgx => 0 >> 'bau'=~ rgx => 0 >> 'bao'=~ rgx => nil >> 'miao'=~ rgx => 0 >> 'mao'=~ rgx => nil >> rgx= /(c|m)iao/ => /(c|m)iao/ >> 'miao'=~ rgx => 0 >> 'ciao'=~ rgx => 0 >> 'biao'=~ rgx => nil >> m=rgx.match 'ciao' => # >> m[0] => "ciao" >> m[1] => "c" >> rgx= /(c)(i)(ao)/ => /(c)(i)(ao)/ >> m=rgx.match 'ciao' => # >> m[1] => "c" >> m[2] => "i" >> m[3] => "ao" >> 'ciao' =~ rgx => 0 >> $1 => "c" >> $2 => "i" >> $3 => "ao"