scanメソッド
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
scanメソッドは、gsubメソッドのように、文字列中のすべてのマッチする部分を検索し、取り出します。
gsubメソッドとの違いは、検索してマッチした部分を取り出すだけで、置換は行わないという点です。
マッチした部分に対して、何らかの処理を行う場合に、scanメソッドを使うと便利です。
スポンサーリンク
str = "hello world !" p str.scan(/.o/) str.scan(/[^\s]+/){|m| puts m } "aaabbbbbcccabcddddddddddeeffff".scan(/(.)(\1{2,})/){|a, b| puts "#{a}#{b} :#{a} - #{b}" puts "#{$&} :#{$1} - #{$2}" }
scanメソッドは、マッチした部分を配列として返します。
また、scanメソッドは、ブロックを取ることができるので、マッチした部分に繰り返し処理を行うことができます。
さらに、正規表現中で、「()」(括弧)で括った表現は、ブロックに引数として渡せます。(上記の場合、|a, b|)
ブロック内の以下2行の処理は、同じ処理となります。
puts "#{a}#{b} :#{a} - #{b}" puts "#{$&} :#{$1} - #{$2}"
実行結果です。
["lo", "wo"] hello world ! aaa :a - aa aaa :a - aa bbbbb :b - bbbb bbbbb :b - bbbb ccc :c - cc ccc :c - cc dddddddddd :d - ddddddddd dddddddddd :d - ddddddddd ffff :f - fff ffff :f - fff
スポンサーリンク
<< 前の記事 : sub, gsubメソッドで置換を行う
スポンサーリンク