用preg_replace替换html标记

时间:2010-07-21 04:05:41

标签: php regex

我正在尝试使用preg_replace匹配标签。使用的正则表达式是:<video[^>]*>(.*?)</video>

但我收到服务器警告:Message: preg_replace() [function.preg-replace]: Unknown modifier ']'

有关原因的任何线索?

另外,我如何修改正则表达式以便它可以匹配[video]标签?

谢谢!

1 个答案:

答案 0 :(得分:2)

不要忘记根据preg_函数的要求划分正则表达式。通常我们会写/regex/,但任何分隔符都会写。

由于你的正则表达式包含/,我会选择%,以避免转义它。

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

当然,要注意通过正则表达式试图弄乱HTML的危险。会有问题。一如既往。

如果您想要[video],只需将所有<>替换为[] - 但请记住要逃避它们,因为[]在常规中很重要表达式!

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