01月16日 水曜日
■[ruby]全角英数字を半角に
dankogaiさんのブログ記事を見て、dankogaiさんが脊髄でひねり出したという
perl -CIO -ple 'tr/\x{FF01}-\x{FF5e}/\x21-\x7e/'
をrubyでやってみようということで、ひねり出したのがこちら
まずは1.8バージョン
ruby -Ku -rjcode -e 'print gets(nil).tr("#{[0xff01].pack("U")}-#{[0xff5e].pack("U")}", "#{[0x21].pack("U")}-#{[0x7e].pack("U")}")'
さすがに脊髄でひねり出すってわけにはいかなかった、実際これにたどりつくまでに数時間要してます・・・。
1.9だともっと簡単になります。
ruby -Ku -e 'print gets(nil).tr("\u{ff01}-\u{ff5e}","\u{21}-\u{7e}")'
NKF使えばこういう風にもできるらしい。
#!/usr/local/bin/ruby -Ke require 'nkf' while line = DATA.gets puts NKF.nkf('-m0Z1', line) end
それじゃあってことで、それをワンライナーにしてみた。
ruby -Ks -rnkf -e 'print NKF.nkf("-m0Z1", gets(nil))'
これだと、-K オプションの指定さえ適切にしてやれば、どの文字コードでも対応できますね。
はてなハイク楽しすぎ、完全にはまった。
コメントを書く
トラックバック - http://d.hatena.ne.jp/endor/20080116/1200417056
リンク元
- 49 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4HPND_ja___JP246&q=eclipse+plink
- 38 http://search.yahoo.co.jp/search?p=ほんダイアリー&search.x=1&fr=top_ga1&tid=top_ga1&ei=UTF-8
- 21 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=ZpI&q=tar+取り出す+指定+linux&btnG=検索&lr=lang_ja
- 21 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=ruby+全角数字&btnG=検索&lr=
- 21 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=受験生は毎朝、必ず紅茶かコーヒーのどちらか
- 15 http://www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rlz=1T4GZAZ_jaJP229JP229&q=tex+囲み文字
- 14 http://search.yahoo.co.jp/search?p=本田裕昭&search.x=1&fr=top_ga1&tid=top_ga1&ei=UTF-8
- 14 http://www.google.co.jp/search?hl=ja&q=Java+アプレット+日本語+文字化け&lr=
- 14 http://www.google.co.jp/search?q=サウンドボード 複数&hl=ja&lr=&start=10&sa=N
- 12 http://endor.g.hatena.ne.jp/keyword/本の感想一覧?kid=3

