ファイル名のワイルドカード展開については 既に回答がありますが、
ファイル名を正規表現で処理したいなら、次のようにする方法があります。
1.rb
ruby
1files = Dir.glob('*').select {|name| name =~ /\A10..\.txt\z/ }
2p files
3
4Dir.glob('*').each do |name|
5 if name =~ /\A10..\.txt\z/
6 # ... name について処理をする...
7 p name
8 end
9end
10
11files = Dir.glob('*').select {|name| name =~ /10..\.txt/ }
12p files
実行例:
$ ls
1.rb 1011.txt 2001.txt x1011.txt
1001.txt 1011.txt.txt 2011.txt
$ ruby 1.rb
["1001.txt", "1011.txt"]
"1001.txt"
"1011.txt"
["1001.txt", "1011.txt", "1011.txt.txt", "x1011.txt"]
↑で注意したいのは、 /10...txt/ という正規表現をつかった場合は、
余分なファイル名もマッチしてしまうということです。
/A /z を使って文字列の頭と最後も含めた表現にするとよいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。