マジで、正規表現とかしぬっす。
にがてっす。
きらいっす。
というわけで、もう二度と調べなくていいようにメモ
#EUC-JPの場合のみ、UTF-8とかを使うときはちゃんと[ァ-ヶ]とかしちゃえば動きそうだから。
#Shift_jisは。。使わない前提でよろ。
全角カタカナ[ァ-ヶ]
preg_match(/^¥xA5[¥xA1-¥xF6]+$/,$value)’;
全角ひらがな[ぁ-ん]
preg_match(/^¥xA4[¥xA1-¥xF3]+$/,$value)’;
というわけで、参考サイトはこちら→kzt@?様直リン[blank]
参考サイトのコードはたぶんperlなので、pregを使えばperl互換で検索ができるらしいので、そいで、利用してみた。?とか:とかはよくわかりません。上に書いたようにとったらとりあえず、動いた

kzt@?さんの参照先がなくなっていたので、念のため(._.) φ…….. メモメモ(メモと書いてリスペクトよむ

)
# 半角スペース
$str = ‘¥x20′;# 全角スペース
$str = ‘(?:¥xA1¥xA1)’; # EUC-JP
$str_sjis = ‘(?:¥x81¥x40)’; # SJIS# 全角数字 [0-9]
$str = ‘(?:¥xA3[¥xB0-¥xB9])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x4F-¥x58])’; # SJIS# 全角大文字 [A-Z]
$str = ‘(?:¥xA3[¥xC1-¥xDA])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x60-¥x79])’; # SJIS# 全角小文字 [a-z]
$str = ‘(?:¥xA3[¥xE1-¥xFA])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x81-¥x9A])’; # SJIS# 全角アルファベット [A-Za-z]
$str = ‘(?:¥xA3[¥xC1-¥xDA¥xE1-¥xFA])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x60-¥x79¥x81-¥x9A])’; # SJIS# 全角ひらがな [ぁ-ん]
$str = ‘(?:¥xA4[¥xA1-¥xF3])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x9F-¥xF1])’; # SJIS# 全角ひらがな(拡張) [ぁ-ん゛゜ゝゞ]
$str = ‘(?:¥xA4[¥xA1-¥xF3]|¥xA1[¥xAB¥xAC¥xB5¥xB6])’; # EUC-JP
$str_sjis = ‘(?:¥x82[¥x9F-¥xF1]|¥x81[¥x4A¥x4B¥x54¥x55])’; # SJIS# 全角カタカナ [ァ-ヶ]
$str = ‘(?:¥xA5[¥xA1-¥xF6])’; # EUC-JP
$str_sjis = ‘(?:¥x83[¥x40-¥x96])’; # SJIS# 全角カタカナ(拡張) [ァ-ヶ・ーヽヾ]
$str = ‘(?:¥xA5[¥xA1-¥xF6]|¥xA1[¥xA6¥xBC¥xB3¥xB4])’; # EUC-JP
$str_sjis = ‘(?:¥x83[¥x40-¥x96]|¥x81[¥x45¥x5B¥x52¥x53])’; # SJIS# 半角カタカナ [ヲ-゜]
$str = ‘(?:¥x8E[¥xA6-¥xDF])’; # EUC-JP
$str_sjis = ‘[¥xA6-¥xDF]‘; # SJIS# EUC-JP文字
$ascii = ‘[¥x00-¥x7F]‘; # 1バイト EUC-JP文字
$twoBytes = ‘(?:[¥x8E¥xA1-¥xFE][¥xA1-¥xFE])’; # 2バイト EUC-JP文字
$threeBytes = ‘(?:¥x8F[¥xA1-¥xFE][¥xA1-¥xFE])’; # 3バイト EUC-JP文字
$character = “(?:$ascii|$twoBytes|$threeBytes)”; # EUC-JP文字# EUC-JP文字(機種依存文字・未定義領域・3バイト文字を含まない)
$character_strict = ‘(?:[¥x00-¥x7F]|’ # ASCII
‘¥x8E[¥xA1-¥xDF]|’ # 半角カタカナ
‘[¥xA1¥xB0-¥xCE¥xD0-¥xF3][¥xA1-¥xFE]|’ # 1,16-46,48-83区
‘¥xA2[¥xA1-¥xAE¥xBA-¥xC1¥xCA-¥xD0¥xDC-¥xEA¥xF2-¥xF9¥xFE]|’ # 2区
‘¥xA3[¥xB0-¥xB9¥xC1-¥xDA¥xE1-¥xFA]|’ # 3区
‘¥xA4[¥xA1-¥xF3]|’ # 4区
‘¥xA5[¥xA1-¥xF6]|’ # 5区
‘¥xA6[¥xA1-¥xB8¥xC1-¥xD8]|’ # 6区
‘¥xA7[¥xA1-¥xC1¥xD1-¥xF1]|’ # 7区
‘¥xA8[¥xA1-¥xC0]|’ # 8区
‘¥xCF[¥xA1-¥xD3]|’ # 47区
‘¥xF4[¥xA1-¥xA6])’; # 84区# EUC-JP未定義文字(機種依存文字・3バイト文字を含む)
$character_undef = ‘(?:[¥xA9-¥xAF¥xF5-¥xFE][¥xA1-¥xFE]|’ # 9-15,85-94区
‘¥x8E[¥xE0-¥xFE]|’ # 半角カタカナ
‘¥xA2[¥xAF-¥xB9¥xC2-¥xC9¥xD1-¥xDB¥xEB-¥xF1¥xFA-¥xFD]|’ # 2区
‘¥xA3[¥XA1-¥xAF¥xBA-¥xC0¥xDB-¥xE0¥xFB-¥xFE]|’ # 3区
‘¥xA4[¥xF4-¥xFE]|’ # 4区
‘¥xA5[¥xF7-¥xFE]|’ # 5区
‘¥xA6[¥x89-¥xC0¥xD9-¥xFE]|’ # 6区
‘¥xA7[¥xC2-¥xD0¥xF2-¥xFE]|’ # 7区
‘¥xA8[¥xC1-¥xFE]|’ # 8区
‘¥xCF[¥xD4-¥xFE]|’ # 47区
‘¥xF4[¥xA7-¥xFE]|’ # 84区
‘¥x8F[¥xA1-¥xFE][¥xA1-¥xFE])’; # 3バイト文字# SJIS文字
$oneByte_sjis = ‘[¥x00-¥x7F¥xA1-¥xDF]‘; # 1バイト SJIS文字
$twoBytes_sjis =
‘(?:[¥x81-¥x9F¥xE0-¥xFC][¥x40-¥x7E¥x80-¥xFC])’; # 2バイト SJIS文字
$character_sjis = “(?:$oneByte_sjis|$twoBytes_sjis)”; # SJIS文字# SJIS文字(機種依存文字・未定義領域を含まない)
$character_sjis_strict = ‘(?:[¥x00-¥x7F¥xA1-¥xDF]|’ # ASCII,半角カタカナ
‘[¥x89-¥x97¥x99-¥x9F¥xE0-¥xE9][¥x40-¥x7E¥x80-¥xFC]|’ # 17-46,49-82区
‘¥x81[¥x40-¥x7E¥x80-¥xAC¥xB8-¥xBF¥xC8-¥xCE¥xDA-¥xE8¥xF0-¥xF7¥xFC]|’ # 1,2区
‘¥x82[¥x4F-¥x58¥x60-¥x79¥x81-¥x9A¥x9F-¥xF1]|’ # 3,4区
‘¥x83[¥x40-¥x7E¥x80-¥x96¥x9F-¥xB6¥xBF-¥xD6]|’ # 5,6区
‘¥x84[¥x40-¥x60¥x70-¥x7E¥x80-¥x91¥x9F-¥xBE]|’ # 7,8区
‘¥x88[¥x9F-¥xFC]|’ # 15,16区
‘¥x98[¥x40-¥x72¥x9F-¥xFC]|’ # 47,48区
‘¥xEA[¥x40-¥x7E¥x80-¥xA4])’; # 83,84区# SJIS未定義文字(機種依存文字を含む)
$character_sjis_undef =
‘(?:[¥x85-¥x87¥xEB-¥xFC][¥x40-¥x7E¥x80-¥xFC]|’ # 9-14,85-120区
‘¥x81[¥xAD-¥xB7¥xC0-¥xC7¥xCF-¥xD9¥xE9-¥xEF¥xF8-¥xFB]|’ # 1,2区
‘¥x82[¥x40-¥x4E¥x59-¥x5F¥x7A-¥x7E¥x80¥x9B-¥x9E¥xF2-¥xFC]|’ # 3,4区
‘¥x83[¥x97-¥x9E¥xB7-¥xBE¥xD7-¥xFC]|’ # 5,6区
‘¥x84[¥x61-¥x6F¥x92-¥x9E¥xBF-¥xFC]|’ # 7,8区
‘¥x88[¥x40-¥x7E¥x80-¥x9E]|’ # 15,16区
‘¥x98[¥x73-¥x7E¥x80-¥x9E]|’ # 47,48区
‘¥xEA[¥xA5-¥xFC])’; # 83,84区# iモード対応 絵文字
$iPictograph_base = ‘(?:¥xF8[¥x9F-¥xFC]|’ # 基本絵文字(SJIS)
. ‘F9[¥x40-¥x49¥x50-¥x52¥x55-¥x57¥x5B-¥x5E¥x72-¥x7E¥x80-¥xB0])’;
$iPictograph_ext = ‘(?:F9[¥xB1-¥xFC])’; # 拡張絵文字(SJIS)
$iPictograph =
‘(?:$iPictograph_base|$iPictograph_ext)’; # iモード対応 絵文字(SJIS)
ツイートRelated posts: