- Ruby 初心者スレッド Part 59 [無断転載禁止]©2ch.net
327 :デフォルトの名無しさん[sage]:2016/12/06(火) 13:30:50.46 ID:rcXtUD5h - >>326
/re/ =~ str の戻り値自身はマッチした位置情報のみを返す 0は0文字目でマッチしたという意味でnilはマッチしなかったという意味 マッチした文字列を利用したい場合は今後のことも考えて()を使う 正規表現内の1番目の()で囲った正規表現にマッチした文字列は変数 $1 か String#matchの戻り値[1] で利用できる irb> p $1 if '1122334455' =~ /([2]+)/ "22" irb> m = '1122334455'.match(/([2]+)/); p m[1] if m "22" よってスクリプトはこんな感じになる datafile = "number.txt" File.open(datafile) do |f| f.each_line do |line| matched = line.match(/^([1][3][0-9])$/) p matched[1] if matched end end
|