2013-01-22 88 views
0

我已经创建了一个自定义标签,需要在页面呈现前剥离并替换。标签是这样的:[@ customTagToBeReplaced]Preg_replace和自定义标签

我使用的preg_replace函数模式是这样在PHP:

$pattern = "/\[@ .*\]/is"; 

当我已经实现了它,有时甚至更多或更少的字符被剥离剩下的一半HTML标记已损坏。就像这样:

前:

<div class=""> 
[@ error] 
</div> 

后:

<div class="</div> 

回答

0

你的模式是过于贪婪,试图用更具体的东西:

$pattern = "/\[@ \w+\]/is"; 

\w匹配所有文字字符(字母数字&下划线)。

+0

它的工作原理!谢谢你的提示。只是好奇,你碰巧知道正则表达式的好资源吗? – osoclever

+0

我建议阅读“掌握正则表达式”,真是一本好书(相当大)。还有一个我非常喜欢的在线资源(http://www.regular-expressions.info/)。 – freedev