• ベストアンサー

正規表現について

Perlの初心者です。 正規表現の指定方法がよくわかりません。 ディレクトリー内の該当するCSVファイルの抽出をしたいのですが、 "xyz20050105*.csv"に該当するデータすべてを抽出したい。 下記のように、詳細に指定して該当するCSVのファイル名を取得したいのですが、これだとディレクトリー内がすべて表示されてしまいます。 @FTPlist = grep ("$head$year$mon$mday*.csv", readdir(DIR)); どのように指定すればよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2です。 正規表現部分は、 @FTPlist = grep (/^$head$year$mon$mday.*\.csv$/, readdir(DIR)); のような感じになると思います(試してません)。

whitelove
質問者

お礼

上記でできました。ありがとうございます。

その他の回答 (2)

回答No.2

ご質問の趣旨と外れるかもしれませんが、 > @FTPlist = grep ("$head$year$mon$mday*.csv", readdir(DIR)); 変数($head,$year,...)の値は確認していますか? 未確認であれば、 print ( "head=$head,year=$year,mon=$mon,mday=$mday\n" ); という感じで確認してみてください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

@FTPlist = glob "$head$year$mon$mday*.csv"; でいいと思います。

whitelove
質問者

お礼

ご回答ありがとうございます。早速やってみます。

関連するQ&A