正規表現による日本語のパターンマッチ
文字コードはEUC-JPで。
隣り合った文字のトレールバイトとリードバイトがひとつの文字として認識されてマッチしてしまい、正しくマッチできない。ということが起こる。
BBSで「究極に眠い」と書いたら発生した。原因は「に眠い」にある。これはEUC-JPで「a4cbccb2a4a4」というコードなんだけど、解釈の仕方で文字化けする。
に 眠 い
a4cb ccb2 a4a4
これが、
a4 cbcc b2a4 a4
? 北 欧 ?
になる。北欧ははてなダイアリーキーワードにマッチしてしまう。やれやれだな。
キーワードのマッチには正規表現とXML-RPCが使えるんだけど、両方ともダメでした。XML-RPCではエラーが返ってくるっぽい。
-
- -
正規表現のこういう問題に対処する方法は以下が詳しいです。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Match