Perlコーディング初心者質問スレ Part 39
■ このスレッドは過去ログ倉庫に格納されています
0508nobodyさん
04/12/27 17:19:58ID:d87nS7mBmy $a = "123456789";
$a =~ s/(?:\xA3([\xB0-\xB9]))/ chr(ord($1)-0xB0+ord('0')) /eg;
print $a;
>123456789
↑自分で全角数字を半角数字に変換するコードを考えたのですが、
マルチバイト文字などの中間に誤ってマッチしてしまいます。
例→隠隠
1文字目の2バイト目が\xA3で、2文字目の1バイト目が\xB0-\xB9である組み合わせには
完全に誤作動してしまいます。
どうすればよいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています