2010-07-21 137 views
0

我試圖使用preg_replace匹配標記。所使用的正則表達式是:<video[^>]*>(.*?)</video>使用preg_replace替換html標記

但我發現了一個服務器警告:Message: preg_replace() [function.preg-replace]: Unknown modifier ']'

爲什麼任何線索?

此外,我如何修改正則表達式,以便它可以匹配[視頻]標籤呢?

謝謝!

+2

你不應該用正則表達式解析HTML。欲瞭解更多關於爲什麼的信息,請閱讀這個問題的答案:http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not 對於BBCode的東西,你可以使用BBCode擴展如果您有權訪問PECL。 http://www.php.net/manual/en/book.bbcode.php – Shabbyrobe 2010-07-21 05:02:11

+0

謝謝,這裏沒有太多的文檔,但我會看到它。 – Nacho 2010-07-21 13:22:41

回答

2

不要忘記根據preg_函數的要求劃定您的正則表達式。通常我們會寫/regex/,但是任何分隔符都可以。

由於你的正則表達式包含/,我會去找%,以避免它逃脫。

%<video[^>]*>(.*?)</video>% 

當然,要注意嘗試通過正則表達式來混淆HTML的危險。會有問題。一如既往。

如果你想[video]代替,只需更換與[]所有<> - 但記得要逃避他們,因爲[]有顯著正則表達式!

%\[video[^\]]*\](.*?)\[/video\]% 
+0

謝謝!關於html ..我知道,但它只是視頻代碼的快速替代品。不應該太成問題。 – Nacho 2010-07-21 04:15:53

+0

@Ignacio - 很高興幫助:)我確定你知道,但請記得單擊答案旁邊的複選標記,一旦SO會讓你:D謝謝! – Matchu 2010-07-21 04:16:35