帮助preg匹配和转义尖括号!

时间:2011-08-04 14:56:25

标签: php preg-replace pattern-matching brackets

我已经尝试了几种方法来实现这一点,基于手册页,但我似乎无法做到这一点,不管怎么说..

要从即将输出的部分内容中找到并替换它。

<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmf] 

使用与此类似的模式:

[dailymotion + ] + <!--nextpage--><!--tab_title:DAILYMOTION--> 

然后删除......

<!--nextpage--><!--tab_title:DAILYMOTION--> 

因此输出:

<!--nextpage--><!--tab_title:DAILYMOTION-->
[dailymotion xkbbmb]
[dailymotion xkbbmf] 

我发现尖括号很难处理,所以我想知道是否有正则表达式语法可能只是替换! - nextpage-左边的一个字符,并且右边的去掉了整件事情。还有更好的方法吗?

2 个答案:

答案 0 :(得分:-1)

我认为你只需要摆脱尖括号就可以了。

preg_replace("#\[dailymotion .+?\](\<!--nextpage--\>\<\!--tab_title\:DAILYMOTION--\>)#s",'',$string);

答案 1 :(得分:-1)

就像Marc在评论中所说的那样,使用DOM更好,但是到底是什么,我会试一试

$output = preg_replace("~(\[dailymotion [^\]]+\])\s*<!--nextpage--><!--tab_title:DAILYMOTION-->~", "$1", $input);