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

PHP で「警告: preg_replace(): 不明な修飾子」エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2024-12-25 12:20:32
オリジナル
961 人が閲覧しました

Why Am I Getting the

警告: preg_replace(): 不明な修飾子

エラーの理解

エラー「警告: preg_replace( ): 不明な修飾子」は通常、無効な修飾子を指定した場合に発生します。正規表現パターン。正規表現は、区切り文字で囲まれたパターンと修飾子で構成されます。

エラーの原因

このエラーには、次の 2 つの一般的な理由があります。

  1. 区切り文字がありません: 正規表現パターンが正しく囲まれていません。区切り文字。
  2. エスケープされていない区切り文字: バックスラッシュ () を使用してエスケープせずに、パターン内で区切り文字を使用しました。

解像度

1.区切り文字の追加:

区切り文字を指定していない場合は、/、#、~、または [] などの有効な区切り文字でパターンを囲むだけです。

例:

preg_replace("/<div[^>]*><ul[^>]*>/", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));
ログイン後にコピー

2.エスケープ区切り文字:

パターンに区切り文字が含まれている場合は、バックスラッシュを使用してエスケープします。

例:

preg_replace("/foo[^/]+bar/i", "", "foo/bar");
ログイン後にコピー

3.別の区切り文字を使用する:

区切り文字のエスケープが面倒な場合は、#.

などのパターンに現れない区切り文字の使用を検討してください。例:

preg_replace("#<div[^>]*><ul[^>]*>#", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)));
ログイン後にコピー

追加リソース

  • [PHP 正規表現区切り文字](https://www.php.net/manual/en/reference.pcre.pattern.syntax.php)
  • [方法PHP で ereg 式を preg に変換しますか? (区切り文字がありません)](https://stackoverflow.com/questions/2846236/how-can-i-convert-ereg-expressions-to-preg-in-php-missing-delimiters)
  • [不明…の修飾子「/」?それは何ですか? (preg_quote() の使用について)](https://stackoverflow.com/questions/426482/unknown-modifier-in-what-is-it-on-using-preg-quote)

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

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