基礎プログラミング I 第07 回 正規表現と Ruby 言語でのプログラミング 日本語のデータを検索するには

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

#!/usr/koeki/bin/ruby

$KCODE = 'e'

while station = gets      # gets で取ってきた 1 行を変数 station に代入
  if /酒?田\s+/e =~ station
    #  p station
    print station
  end
end

となる。実行すると

本庄早稲田      埼玉県  ほんじょうわせだ        Honjowaseda
大石田          山形県  おおいしだ              Oishida
新発田          新潟県  しばた                  Shibata
酒田            山形県  さかた                  Sakata
秋田            秋田県  あきた                  Akita
東酒田          山形県  ひがしさかた            Higashisakata
羽田            東京都  はねだ                  Haneda

となる。駅名が "田" で終わるものを検索した。"中田" だったか、"酒田" だったか、それとも "高田" なのか、分からないときに使える。

なぜ "田" で終わる駅が検索されたのか、 順を追って説明せよ。

"/ /e" で EUC で探す、という意味である。 Shift JIS では、"/ /s" を用いる。EUC, Shift JIS は漢字コードと呼ばれる。

e を s に変更した場合、どのような検索結果が出るか。 それはなぜだろうか。

本日の講義 / 講義ノート / 教員トップページ