正規表現メモ

■言語:PHP
■条件:全角、半角英数、アンダーバーのみにマッチ


mb_ereg_match('^([^ -~。-゚]|[a-zA-Z0-9_])*$', $str);

                                                                                                  • -

Perl互換のpreg_matchでは全角文字が使えない
ようなので、POSIXのmb_ereg_matchを使ってます。


半角英数とアンダーバーを意味する『\w』の文字クラスは
Perl互換独自のもののはずなのですが、なぜか
POSIXでも正常に使えました。
でも…、不安なので『[a-zA-Z0-9_]』にしてます。



【追記: 2010/07/11】
Perl互換系のpreg_matchでも、パターン修飾子『u』をつけることで
正規表現の中で日本語を使うことができます。


preg_match('/^([^ -~。-゚]|[a-zA-Z0-9_])*$/u', $str);
参考↓
http://ifs.seesaa.net/article/26300967.html