From: IWATSUKI Hiroyuki Date: 2005-10-12T22:43:35+09:00 Subject: [ruby-list:41274] Re: #grepのパターンに変数を使う方法 岩月と申します。 On 2005/10/12, at 22:03, osamu ohshima wrote: > この場合、2行目のマッチングするパターン"/usb > 2-1.3/"をプログラムの中に直 > 接書くのではなくて、includeする別のファイル中で定義する > 定数として与える > 方が、状況が変ってもコードを直接いじらずに済むのでありがたいの > ですが、 > そんな方法はあるでしょうか。 正規表現リテラル(/usb 2-1.3/)には文字列(変数) を埋め込めます。 pat = "usb 2-1.3" str.grep(/#{pat}/) # str.grep(/usb 2-1.3/) と同じ意味 あとは他のファイルから文字列を読み込むことで、正規表現をスクリプ トの外から指定可能となります。以下はその一例です。 # テキストファイルの1行目にusb 2-1.3と書いておく pat = File.readlines("pat.txt")[0].chomp str.grep(/#{pat}/) # str.grep(/usb 2-1.3/) と同じ意味 多分このような感じでいけると思います。いかがでしょうか。 -- 岩月博之