特定の文字・文字列の出現回数を調べる
文字の数を調べる
対象が文字の場合,SRFI-13にあるstring-countを使います.マルチバイト文字も使えます.
(string-count s char/char-set/pred &optional start end)
使用例.
(use srfi-13) (string-count "a\nb\nccc\nd\n" #\newline) =>4 (string-count "あああいいううええお" #\あ) =>3
複数文字の数を調べる
対象文字が複数ある場合,文字列をいったんリストにしてから数え上げます.
(define (string-count-chars str chars) (fold + 0 (map (lambda (ch) (string-count str ch)) (string->list chars)))) (string-count-chars "あああいいううええお" "いう") =>4 (string-count-chars "あああいいううええお" "うえ") =>4
文字列の出現回数を調べる
対象が文字ではなく,文字列の場合は,正規表現としてマッチさせてからlengthで数えます.
(length (scan-match #/うえ/ "あああいいううええお")) =>1