- ベストアンサー
日本語のマッチング(正規表現)
Perl5.8.7で日本語のマッチングを行おうとしてます. 文字コードはEUCで,[ト],[ユ],[ャ],[ュ]や[ョ] の後にある[ウ]を[ー(長音)]に変換しようとする ものです. 例.ヒャクトウバン→ヒャクトーバン 自分の考えた正規表現では成功しませんでした. if($b[$i] =~ /[\xa5e6\xa5c9\xa5e3 \xa5e5\xa5e7]\xa5a6/){ $b[$i] =~ s/\xa5a6/\xa1bd/; } 文字コードを直接書く方法しかないのか, 日本語はマッチングできるのかなどわからないので, よろしくお願いいたします.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
うろ覚えですが, use encoding 'euc-jp'; しておけば正規表現の中でもカタカナって使えませんでしたっけ?
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
#1もおっしゃってますけどencodingを指定しておけば、日本語のマッチングってできますよ。 use encoding 'euc-jp'; $data="ヒャクトウバン"; $data =~ s/([トユャュョ])ウ/$1ー/g; print $data;
質問者
お礼
基本形を示していただいてありがとうございます。 3行目は勉強になりました。
お礼
キーワードで(use encoding 'euc-jp';)を 調べたら、関連するページも出てきて、 できそうです。 ありがとうございました。