トップページ > プログラム > 2016年12月06日 > rcXtUD5h

書き込み順位&時間帯一覧

14 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000200000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Ruby 初心者スレッド Part 59 [無断転載禁止]©2ch.net

書き込みレス一覧

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
Ruby 初心者スレッド Part 59 [無断転載禁止]©2ch.net
329 :デフォルトの名無しさん[sage]:2016/12/06(火) 13:39:38.26 ID:rcXtUD5h
実際はもっと長い正規表現なのかもしれないし()の利用作法だと思って混乱するのも嫌なので元の部分は極力直さなかった
個人的には\Aと\Zを使いたかったが本筋ではない


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。