■[全角文字が含まれているかどうかを判別]■
【メモ】($strはEUC-JP が前提)

(1)$str に全角文字(半角カタカナを含まない)が含まれているか

if($str =~ /[\xA1-\xFE][\xA1-\xFE]/){
"含まれている"
}
■全角文字は JIS X 0208 と JIS X 0212 半角カタカナは JIS X 0201。全角文字が含まれているかどうかは、JIS X 0208 と JIS X 0212 の共通部分であり,ASCII や JIS X 0201では現れないパターン /[\xA1-\xFE][\xA1-\xFE]/ を使う。

(2)$str に半角カタカナが含まれているか

if($str =~ /\x8E/){
"含まれている"
}
■EUC-JP では /\x8E/ を調べるだけでできる。

(3)$str に ASCII 以外が含まれているか

if($str =~ /[\x8E\xA1-\xFE]/){
"含まれている"
}
■ASCII 以外の文字が含まれているかは、/[\x8E\xA1-\xFE]/ でできる。 \x8E があれば JIS X 0201片仮名 の 1バイト目でマッチし、 [\xA1-\xFE] があれば JIS X 0208 の 1バイト目か、 JIS X 0212 の 2バイト目でマッチする。

Copyright © 2005 by
fujishima.Yasuharu. All Rights reserved. (script)