2013-03-02 103 views
0

我正在开发自己的CMS并需要用正确的php函数替换自定义标记。
我的自定义标签就像<cms:zone id="header" anotherAttr="attrValue" /><cms:xxx />部分对我很重要。
到目前为止,我写了这个正则表达式,但它不能正常工作。 <cms:?([\S|\s]*)\/>
正则表达式匹配<cms:xxx />自定义html标记

<body> 
     <cms:content id="footer" /> 

     <cms:zone id="header" /> 

</body> 

它将匹配

<cms:content id="footer" /> 

      <cms:zone id="header" /> 
+0

为什么不使用适当的DOM解析器? – 2013-03-02 12:54:01

+0

我正在使用模板编译器类的框架,这是我的需要,我只是将其修改为我自己的目的。除了我听说这种方法更快,但我不确定。 – mhesabi 2013-03-02 12:57:02

回答

2

做量词不贪:

<cms:?([\S\s]*?)\/> 
     here __^ 

而且是没有需求|的字符类中