• ベストアンサー

日本語のマッチング(正規表現)

Perl5.8.7で日本語のマッチングを行おうとしてます. 文字コードはEUCで,[ト],[ユ],[ャ],[ュ]や[ョ] の後にある[ウ]を[ー(長音)]に変換しようとする ものです. 例.ヒャクトウバン→ヒャクトーバン 自分の考えた正規表現では成功しませんでした. if($b[$i] =~ /[\xa5e6\xa5c9\xa5e3        \xa5e5\xa5e7]\xa5a6/){ $b[$i] =~ s/\xa5a6/\xa1bd/; } 文字コードを直接書く方法しかないのか, 日本語はマッチングできるのかなどわからないので, よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

うろ覚えですが, use encoding 'euc-jp'; しておけば正規表現の中でもカタカナって使えませんでしたっけ?

Achilles1993
質問者

お礼

キーワードで(use encoding 'euc-jp';)を 調べたら、関連するページも出てきて、 できそうです。 ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1もおっしゃってますけどencodingを指定しておけば、日本語のマッチングってできますよ。 use encoding 'euc-jp'; $data="ヒャクトウバン"; $data =~ s/([トユャュョ])ウ/$1ー/g; print $data;

Achilles1993
質問者

お礼

基本形を示していただいてありがとうございます。 3行目は勉強になりました。