web-dev-qa-db-ja.com

PHPでpreg_matchを使用する場合の「...で不明な修飾子 'g'」

これは私が使用しようとしている正規表現です:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim

このサイト で見つけたので、試してみるとうまくいきます。しかし、コードに配置するとすぐに、次のメッセージが表示されます。

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22

誰でも何が間違っているのか、そしてなぜそれが私のコードではなくそのウェブサイトで機能しているのかを説明できますか?

72
Nike

preg_match の修飾子gはありません。代わりに、 preg_match_all 関数を使用する必要があります。

代わりに:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)

つかいます:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
142
codaddict