<DAY149> 正規表現について
●7/20(土)
●学習日数 149日
●学習時間(本日)2時間
●累計学習時間 722.5時間
●一日あたりの平均学習時間 4.88時間
正規表現の記号の役割
記号がマッチするかどうか
/hoge/
scanメソッドについて
scanメソッドは、引数で指定した正規表現のパターンとマッチする部分を文字列からすべて取り出し、配列にして返します。マッチする部分がなければ、空の配列を返します。
引数に文字列を指定したときは、一致する部分文字列をすべて配列に取り出します。
s = "of the people, by the people, for the people" p s.scan(/\w+/) p s.scan("people") ["of", "the", "people", "by", "the", "people", "for", "the", "people"] ["people", "people", "people"]
問題
任意の文字列に"code"が、どこかに現れるかを回数を返して数えて
その数を出力するメソッドを作りましょう。
ただし、'd'には任意の文字が使用可能です、
例えば"cope"と "cooe"はカウントされます。
ヒント:正規表現を使用してみましょう。
出力例:
count_coxe('aaacodebbb') → 1 count_coxe('codexxcode') → 2 count_coxe('cozexxcope') → 2
回答
def count_code(str) puts str.scan(/co.e/).length end count_code("cozexxcopez")