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

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

Barbara Streisand
リリース: 2024-12-30 10:46:10
オリジナル
550 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート