[ruby-it] File.basename("xxx", "x*x") l'asterisco funziona?
Pietro Giorgianni
giorgian a gmail.com
Sab 27 Mar 2010 15:06:02 CET
Il 27 marzo 2010 14.48, Antonio Flamini <iusimi a libero.it> ha scritto:
> nomi = File.open('path_file') {|f| f.readlines}.map {|x|
> Dir.glob("#{x.strip}/*.dar").map {|y| File.basename(y).gsub
> /\(.\d+)?\.dar$/, '' }.uniq }.flatten
>
> SyntaxError: compile error
> (irb):10: unmatched ): /\(.\d+)?\.dar$/
> (irb):10: syntax error, unexpected ',', expecting '}'
> /\(.\d+)?\.dar$/, '' }.uniq }.flatten
> ^
> from (irb):10
> from :0
Ops! Hai ragione, ho sbagliato qualcosa nel ricopiare: l'espressione
giusta è /(\.\d+)?\.dar$/, non /\(.\d+)?\.dar$/ ; in pratica ho
invertito "(" e "\".
> Lo so che gsub! cambia definitivamente il risultato però irb dovrebbe
> restituirmi tutto.
No. Irb mostra il valore dell'espressione; nel caso di array.each
&block, il valore è l'array finale:
>> [1, 2, 3].each {|x| 'ciao'}
=> [1, 2, 3]
> Uno cosa non ho capito, gli apici '' }.uniq sono apici singoli che
> segnano un posto vuoto per sostituire .n.dar o sono " (virgolette)? io
> le ho sostituite con i 2 apici singoli perché non ho visto l'altro paio,
> per fare la coppia.
Sì, infatti sono due apici, cioè stringa vuota; non l'ho specificato
perché davo per scontato che avresti fatto copia e incolla.
pietro
More information about the Ml
mailing list