我试图使用preg_replace匹配标记。所使用的正则表达式是:<video[^>]*>(.*?)</video>
使用preg_replace替换html标记
但我发现了一个服务器警告:Message: preg_replace() [function.preg-replace]: Unknown modifier ']'
为什么任何线索?
此外,我如何修改正则表达式,以便它可以匹配[视频]标签呢?
谢谢!
我试图使用preg_replace匹配标记。所使用的正则表达式是:<video[^>]*>(.*?)</video>
使用preg_replace替换html标记
但我发现了一个服务器警告:Message: preg_replace() [function.preg-replace]: Unknown modifier ']'
为什么任何线索?
此外,我如何修改正则表达式,以便它可以匹配[视频]标签呢?
谢谢!
不要忘记根据preg_
函数的要求划定您的正则表达式。通常我们会写/regex/
,但是任何分隔符都可以。
由于你的正则表达式包含/
,我会去找%
,以避免它逃脱。
%<video[^>]*>(.*?)</video>%
当然,要注意尝试通过正则表达式来混淆HTML的危险。会有问题。一如既往。
如果你想[video]
代替,只需更换与[]
所有<>
- 但记得要逃避他们,因为[
和]
有显著正则表达式!
%\[video[^\]]*\](.*?)\[/video\]%
你不应该用正则表达式解析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
谢谢,这里没有太多的文档,但我会看到它。 – Nacho 2010-07-21 13:22:41