トップ «前の日記 最新 次の日記»

2023-07-02 (Su) [長年日記]

_ g2diary - 半角カタカナを正規化

  • 「ア」→「ア」
  • 「ハ」→「ハ」
  • 「バ」→「バ」
  • 「ア゙」→「ア゛」

面倒い…

  • 関係ない文字はそのまま
  • 濁点付き文字が定義されてて、後ろが濁点なら、濁点付き全角文字
  • 半濁点付き文字が定義されてて、後ろが半濁点なら、半濁点付き全角文字
  • 定義がないなら、対応する全角文字

これをやるために、

  KANA_MAP = {
    # ...
    'ノ' => [ 'ノ', nil, nil ],
    'ハ' => [ 'ハ', 'バ', 'パ' ],
    # ...
  }

こんな感じに全部列挙しておいて、 テキスト全体を走査しつつ、

      if cans[1] && str[i + 1] == '゙'
        res << cans[1]
        i += 2
        next
      end

こんな感じで処理していったらできた。


編集 パスワード変更