我試圖修復某人的新聞系統中的錯誤,它使用UBB來允許編輯器具有某種靈活性。因此,例如,允許大膽文字下面的正則表達式使用:PHP UBB去除器正則表達式產生錯誤
$message = preg_replace('_\[b\](.*?)\[/b\]_ise', "bold('\\1')", $message);
這工作得很好。然而,也有以脫去UBB代碼顯示的頭版,這是如下的功能:
$message = preg_replace('_\[b\](.*?)\[/b\]_ise', "\\1", $message);
而這正則表達式產生一個錯誤,它沒有任何意義,我,畢竟這是完全相同的正則表達式。
Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: This is bold in /public_html/functions.inc.php on line 122
121 $message = preg_replace('_\[i\](.*?)\[/i\]_ise', "\\1", $message);
122 $message = preg_replace('_\[b\](.*?)\[/b\]_ise', "\\1", $message);
123 $message = preg_replace('_\[u\](.*?)\[/u\]_ise', "\\1", $message);
上的preg_replace的'e'後綴評價這是一個從正則表達式作爲PHP中生成的代碼;你能否向你的問題添加一個失敗的輸入例子?據猜測,如果你將後綴改爲'is',那麼它應該可以工作。 – andrewsi 2012-07-13 12:09:17