您好,欢迎访问一九零五行业门户网

【php】正?表?

【概要】
phpには正?表数群が3ある。
正?表数(posix regex):ereg()系。マルチバイト不可。 pcre正?表数(perl互?):preg_match()系。マルチバイトはutf-8のみ。 マルチバイト文字正?表数:mb_ereg()系。rubyの正?表?を使用。php5.0で「鬼?」?み?み。 主な特??
pcreはバイナリセ?フで、posixはセ?フじゃない。 pcreの正?表?は//などのデリミタで?う必要がある。 perl互?の正?表文を使用するpreg_match()のほうが、多くの?合ereg()よりも速く?作するらしい。
euc-jpを使うのでmb_ereg。
●int mb_ereg ( string $pattern , string $string [, array $regs ] )
マルチバイト文字列に正?表?マッチを行う。 マルチバイトの正?表?マッチを行い、一致した?合は 1 を返す。オプションの 3 番目の引数を指定した?合は、一致した部分のバイト数を返し、一致した部分文字列が配列 regs に格?される。空文字に一致した?合は 1 を返す。正?表?に一致しないか、エラ?を?生した?合に false を返す。
【正?表?例】
●ip4:xxx.xxx.xxx.xxxの形式チェック
^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$
●西?日付:yyyy-mm-ddの形式チェック
^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$
●url:有?文字以外をチェック
[^\-_.!~*\'()a-za-z0-9;\/?:\@&=+\$,%#]
●useragent:有?文字以外をチェック
[^\-_.!~*\'()a-za-z0-9;\/?:\@&=+\$,%#\x20\[\]\{\}]
●名前:?字チェック(未定?含む全)
[\xa1\xa1-\xfe\xfe]
●名前英?名:有?文字チェック(英文字、ハイフン、ピリオド、半角スペ?ス)
[a-za-z\-.\x20]+
形式チェックは?しいかも。
●フリガナ:全角カナチェック(全角カナ、?音、全角・半角スペ?ス)
^[\x20ァ-ヶ?- ]+$
●email:php系ライブラリの?装(バ?ジョンで?なる可能性あり)
phpspot:シンプル '/^[a-za-z0-9_\.\-]+?@[a-za-z0-9_\.\-]+$/'
pear::mail_rfc822:オ?バ?ライン文字が入力できませんh $regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.$|\'\\%\/0-9a-z^_`{}=?(オ?バ?ライン):-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
cakephp:63文字の根?は? '/\\a(?:^([a-z0-9][a-z0-9_\\-\\.\\+]*)@([a-z0-9][a-z0-9\\.\\-]{0,63}\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\z/i'
ethna '/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i'
【正?表?注意事?】
perlのサンプルで//?みがあるものは不要なのではずす。 空白文字は\sじゃなくて、\x20。 16?数文字の(例:\x20\x20)は多バイト符号で表?された1文字と?なされる。 英?名表?はa~z,a~z,-(ハイフン),.(ピリオド),'(アポ),(ダブル)が?受けられる。アポとダブルはミドルネ?ムのくくりに使われる。アポは?音?助(オライリ?:o'reilly)のように使われる。~3世の?述は、iiiとなる。数字0~9は使われない。通常判定は、英文字とハイフン、ピリオド、半角スペ?スでok。 emailについて emailはコメントネストがあるため正?表?では?述できないらしい。 @より前の部分は、rfcの定?では半角英数?号なんでもありらしい。 日本では、プロバイダが?行するメ?ルアカウントは、半角英数とハイフン、アンダ?バ?、ピリオドのみとするところがほとんどと思われる。(携?含む) webメ?ラ?系、特にgmailは、向こうの文化なので、アカウント部分に?号あり。gmailの独自仕??でアカウント部分の+文字から@まではらしい。なので?述し放?@@; 最?解は?い。自分のサイト?用に合わせて、チェック仕?(?インジェクション含む)を考える。
【参考url】
●php で使用できる正?表?演算子(mb_ereg)
http://www.kt.rim.or.jp/~kbk/regex/regex.html#php
●鬼?正?表?
http://www.geocities.jp/kosako3/oniguruma/doc/re.ja.txt
●euc-jp文字コ?ド表
http://charset.7jp.net/euc.html
其它类似信息

推荐信息