ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「preg_replace()」関数が「不明な修飾子」エラーをスローするのはなぜですか?

PHP の「preg_replace()」関数が「不明な修飾子」エラーをスローするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-30 10:46:10567ブラウズ

Why is my PHP `preg_replace()` function throwing an

preg_replace(): 不明な修飾子 - 診断と解決策

エラー メッセージ「警告: preg_replace(): 不明な修飾子 [文字]」が表示された場合]」の根底にあるものを理解することが重要です原因:

区切り文字が見つからない、またはエスケープされていない区切り文字

PHP では、正規表現で境界を定義するために区切り文字が必要です。パターン内に区切り文字がないか、エスケープされていない区切り文字があると、このエラーが発生する可能性があります。たとえば、提供されたコード スニペットでは:

preg_replace("<div[^>]*><ul[^>]*>", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)) ));

正規表現に区切り文字がないため、エンジンは「[ ]」を認識できない修飾子として解釈します。

修正:

この問題を解決するには、正規表現を次のような有効な区切り文字で囲みます。 "/":

preg_replace("/<div[^>]*><ul[^>]*>/", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)) ));

または、パターン内に区切り文字が含まれる場合は、次のようにバックスラッシュ ("") でエスケープします。

preg_replace("/foo\/bar/", "", $string);

追加リソース:

  • [PHP 正規表現] Delimiters](https://www.php.net/manual/en/regexp.reference.delimiters.php)
  • [PHP で Ereg 式を Preg に変換するには? (区切り文字がありません)](https://stackoverflow.com/questions/2487417)
  • […に不明な修飾子 '/' がありますか?それは何ですか? (preg_quote() の使用について)](https://stackoverflow.com/questions/6302259)

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

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