首頁 >後端開發 >php教程 >為什麼我在 PHP 中收到「警告:preg_replace():未知修飾符」錯誤?

為什麼我在 PHP 中收到「警告:preg_replace():未知修飾符」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-12-25 12:20:32956瀏覽

Why Am I Getting the

警告:preg_replace():未知修飾符

理解錯誤

錯誤「警告:preg_replace( ):未知修飾符」通常在您在正規表示式中指定無效修飾符時出現圖案。正規表示式由模式和分隔符號內的修飾符組成。

錯誤原因

此錯誤有兩個常見原因:

  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn