2023-07-02 (Su) [長年日記]
_ g2diary - 半角カタカナを正規化
- 「ア」→「ア」
- 「ハ」→「ハ」
- 「バ」→「バ」
- 「ア゙」→「ア゛」
面倒い…
- 関係ない文字はそのまま
- 濁点付き文字が定義されてて、後ろが濁点なら、濁点付き全角文字
- 半濁点付き文字が定義されてて、後ろが半濁点なら、半濁点付き全角文字
- 定義がないなら、対応する全角文字
これをやるために、
KANA_MAP = {
# ...
'ノ' => [ 'ノ', nil, nil ],
'ハ' => [ 'ハ', 'バ', 'パ' ],
# ...
}
こんな感じに全部列挙しておいて、 テキスト全体を走査しつつ、
if cans[1] && str[i + 1] == '゙'
res << cans[1]
i += 2
next
end
こんな感じで処理していったらできた。
[ツッコミを入れる]