基礎プログラミング I 第 7 回 (正規表現と Ruby 言語でのプログラミング) 「日本語のデータを検索するには」 講義ノート目次

日本語には文字コードがあった。UNIX で作ったデータならば、 文字コードは変更せずに使用することができた。 regexp_egrep_jp.rb


#!/usr/koeki/bin/ruby
#coding: euc-jp

while station = gets gets で取ってきた 1 行を変数 station に代入
if /る?かわ/ =~ station
# p station print station
end
end

となる。実行すると

%./egrep.rb station.dat
新白河福島県しんしらかわShinshirakawa
清川山形県きよかわKiyokawa
狩川山形県かりかわKarikawa
となる。駅名が 「るかわ」 あるいは 「かわ」 と読むものを検索した。 「ふりかわ」あるいは「ふるかわ」、もしくは「たるかわ」、「さるかわ」 なのか、分からないときに使える。

なぜ「るかわ」あるいは「かわ」のつく駅名が検索されたのか、順を追って説明せよ。

/ / で EUC で探す、という意味である。 2 行目で文字コードを指定しているため、 Microsoft 社が使用する Shift JIS や、電子メールが使う文字コード JIS を使用したデータでは、この方法にさらに 工夫が必要である。 EUC, Shift JIS, JIS は漢字コードと呼ばれる。