「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 サイトの他の関連記事を参照してください。