2010-01-01から1ヶ月間の記事一覧

文字列が空行か調べる

文字列が空行か調べる 空行の意味によりいくつかの方法が存在します.ここでは3種類の空行において調べる方法を示します. 空白文字が入っていても空行として扱う場合 string-trim-bothとstring-null?を組み合わせます.string-trim-bothではchar/char-set/p…

空白にマッチさせる

空白にマッチさせる 空白にマッチさせるには空白文字を表す#/\s/を使えばよいでしょう. (#/\s/ "a a") =>#<<regmatch> 0x4a4300> 全角空白文字もマッチさせたい場合 #/\s/だと全角空白文字は入らないため併せて指定する必要があります. ; 文字列の最後尾に全角空白が</regmatch>…

文字列を比較する

文字列を比較する eaual?もしくはstring=?により,文字列の比較を行うことができます.eq?やeqv?は文字列比較の場合, 別の意味になる(同一オブジェクトでかつメモリ位置が同じ場合に#t)ので,ここでは使えません. (equal? obj1 obj2) (string=? string1 st…

文字の出現頻度を調べる

文字の出現頻度を調べる それっぽい手続きはなさそうなので,自力で数えることにする. (use gauche.collection) (define (match-count re str) (define (grp-to-assoc grp) (if (null? grp) '() (cons (cons (caar grp) (length (car grp))) (grp-to-assoc …

特定の文字・文字列の出現回数を調べる

文字の数を調べる 対象が文字の場合,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…