Ruby で文字列に含まれる英字と数字を、半角から全角に&全角から半角に変換する処理を書きました。検索して調べたところ、NKF(Network Kanji code conversion Filter)を使う方法が多くヒットしたのですが、文字列中の英数字の変換が目的だったので、より簡単な String#tr メソッドを使う方法を採用しました。
こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底を食らったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し
#変換テーブル上の文字が置換されていることを確認 from_chr = "\u{301C 2212 00A2 00A3 00AC 2013 2014 2016 203E 00A0 00F8 203A}" p from_chr p from_chr.sjisable #Shift_JISにもWindows-31Jにもない文字は諦めて?にする p "ä".sjisable # Windows拡張領域は保持されていることを確認 p "①②③髙島屋".sjisable 実行結果 これどんないいことがあるの? Rubyの内部コードはもはやUTF8。だけど、最終的にはエクセル向けにシフトJISのCSVを出力することもある。だけど、内部コードから出力時にエンコード変換をすると、対応する文字が見つからなくて、例外がでちゃう。例外はヤなので、多少は文字を置き換え(もしくは全く変換できないものは?に置換)して
本記事について 本記事では、正規表現を用いて文字列操作が出来るようになることを目的にします。正規表現を使ったことがない人でも分かりやすいように書いたつもりです。 具体的には、Stringクラスのメソッドsub、gsub、matchメソッドが登場し、その中で正規表現を使っていきます。 なお、本記事の作成にあたって、 Rubyリファレンス(String) RubyのString/Regexpクラスによる強力な文字列操作/正規表現 等を参考にしています。 それでは、早速みていきたいと思います。 正規表現を使う Regexpクラス Rubyで正規表現を扱うためのクラスはRegexpクラスです。(Regexp = Regular Expression) このRegexpクラスを用いながら、正規表現を行っていきます。 そもそも、正規表現を用いる理由は以下です。 ある文字列が特定のパターンを持っているか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く