« 2006年04月 | メイン | 2006年06月 »

2006年05月09日

文字の正規表現!パクリ!!

文字の正規表現
半角スペース

$space = '\x20';

全角スペース

$Zspace = '(?:\xA1\xA1)'; # EUC-JP
$Zspace_sjis = '(?:\x81\x40)'; # SJIS

全角数字 [0-9]

$Zdigit = '(?:\xA3[\xB0-\xB9])'; # EUC-JP
$Zdigit_sjis = '(?:\x82[\x4F-\x58])'; # SJIS

全角大文字 [A-Z]

$Zuletter = '(?:\xA3[\xC1-\xDA])'; # EUC-JP
$Zuletter_sjis = '(?:\x82[\x60-\x79])'; # SJIS

全角小文字 [a-z]

$Zlletter = '(?:\xA3[\xE1-\xFA])'; # EUC-JP
$Zlletter_sjis = '(?:\x82[\x81-\x9A])'; # SJIS

全角アルファベット [A-Za-z]

$Zalphabet = '(?:\xA3[\xC1-\xDA\xE1-\xFA])'; # EUC-JP
$Zalphabet_sjis = '(?:\x82[\x60-\x79\x81-\x9A])'; # SJIS

全角ひらがな [ぁ-ん]

$Zhiragana = '(?:\xA4[\xA1-\xF3])'; # EUC-JP
$Zhiragana_sjis = '(?:\x82[\x9F-\xF1])'; # SJIS

全角ひらがな(拡張) [ぁ-ん゛゜ゝゞ]

$ZhiraganaExt = '(?:\xA4[\xA1-\xF3]|\xA1[\xAB\xAC\xB5\xB6])'; # EUC-JP
$ZhiraganaExt_sjis = '(?:\x82[\x9F-\xF1]|\x81[\x4A\x4B\x54\x55])'; # SJIS

全角カタカナ [ァ-ヶ]

$Zkatakana = '(?:\xA5[\xA1-\xF6])'; # EUC-JP
$Zkatakana_sjis = '(?:\x83[\x40-\x96])'; # SJIS

全角カタカナ(拡張) [ァ-ヶ・ーヽヾ]

$ZkatakanaExt = '(?:\xA5[\xA1-\xF6]|\xA1[\xA6\xBC\xB3\xB4])'; # EUC-JP
$ZkatakanaExt_sjis = '(?:\x83[\x40-\x96]|\x81[\x45\x5B\x52\x53])'; # SJIS

半角カタカナ [ヲ-゜]

$Hkatakana = '(?:\x8E[\xA6-\xDF])'; # EUC-JP
$Hkatakana_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[\xB9-\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区

投稿者 muuming : 16:16 | コメント (0)