それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ランダムなひらがな文字列を生成する-ruby でひみつの質問

ひみつの質問の回答をジェネレーターで作る

(1..10).each do
  puts (1..20).map{|e| (0x3042+Random.new.rand(0..82)).chr(Encoding::UTF_8)}.join
end

実行サンプル

ランダムな文字列を生成するのである。

/usr/bin/ruby himitu.rb
ふぉゔゃまゅめゅいごなこきむてぎなざさへ
ぽぽはとごだんむごよぇねとほうそわをゎつ
ねぽねなやしいづびぽぉばぐひごろへでおよ
がづつぷほぼゑたやかゆぺえへまよもいおぇ
りねっせぶぢけぺねあとほごせよんうゐだひ
ろざゆぃくばへごつちきゎそぱたついさげへ
ずじへめやむぺゐふぃまえしづめゃおゅなし
ふもぺょけにゃぜつかぢきいぎけのすむぉで
りこぐぶやをのうぐぱにずぬえぞはめぶゑち
もとをぷゅぱひよぱぢずゃぽんさけまぼしけ

仕組み

UTF-8 で 0x3042 が’あ’

0x3042 + ランダムな数字

数字.chr( Encoding::UTF_8 ) で、文字コードの数字を、文字に変換

あとはこれを必要文字数文繰り返す。

バリデーションで弾かれる可能性がある。

'ゔ', 'ゕ', 'ゖ' の3つの文字は、バリデーションで「かな」ではないと弾かれる可能性が高い。

世間に出回る、ひらがなチェック正規表現"regex": /^[ぁ-んー\s]+$/ になっているので 、’んー’以降に存在する 'ゔ', 'ゕ', 'ゖ'はひらがなとして認識されないかもしれない。

関連資料

秘密の質問ジェネレータを、pythonでぱぱっと - それマグで!