ホームページ  >  記事  >  バックエンド開発  >  「preg_match の不明な修飾子 'g'」エラーが発生するのはなぜですか?

「preg_match の不明な修飾子 'g'」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 11:50:03407ブラウズ

Why Am I Getting the

「preg_match の不明な修飾子 'g'」の背後にある謎を明らかにする

preg_match 関数を使用して PHP で正規表現を操作する場合、 「不明な修飾子 'g'」というエラー メッセージが表示される場合があります。この問題は、使用している正規表現の構文が間違っていることに関連しています。

問題

使用しようとしている正規表現には「g」が含まれていますpreg_match 関数で認識されない修飾子 (/regex/gim など)。一部のオンライン正規表現テスト Web サイトでは「g」修飾子が許可されている場合がありますが、PHP ではこのコンテキストでは修飾子をサポートしていません。

解決策

この問題を解決するには、次のようにします。代わりに preg_match_all 関数を使用できます。この関数は、パターンの複数の出現を照合するための「g」修飾子をサポートしています。 'g' 修飾子はグローバル検索を導入し、関数が文字列全体を反復処理し、パターンのすべての出現と一致する必要があることを示します。

代わりに:

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

使用:

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

を置き換えることにより、 preg_match_all 関数で「g」修飾子と「m」修飾子を組み合わせた場合、コードは意図したとおりに機能し、入力文字列内の指定された電子メール アドレス パターンの複数の出現と一致します。

以上が「preg_match の不明な修飾子 'g'」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。