2010-09-09 62 views
0

的阵列我想知道我怎么会拆分此字符串正则表达式分裂成碎片

{{MENU}}<li><a href="{{LINK}}" title="{{TITLE}}"><span>{{TITLE}}</span></a></li>{{/MENU}} 

成数组:

{{MENU}}<a href="{{LINK}}" title="{{TITLE}}">{{TITLE}}</a>{{/MENU}} 
{{MENU}}<b><a href="{{LINK}}" title="{{TITLE}}">{{TITLE}}</a></b>{{/MENU}} 

array(
    "<li><a href=\"", 
    "{{LINK}}", 
    "\" title=\"", 
    "{{TITLE}}", 
    "\"><span>", 
    "{{TITLE}}", 
    "</span></a></li>" 
) 

还应该有更多不同的格式,如工作

我的问题是,我不知道如何编写这个复杂的正则表达式呢。

+4

而且我你为什么不使用DOM解析器来获取这些值 – Gordon 2010-09-09 13:56:58

+1

像戈登说想,但DOM解析器听起来有些压倒性的...这真的是你需要使用的,因为任何类型的reg-ex都会有很大的工作量,性能会受到影响。 – Petrogad 2010-09-09 13:59:38

+0

@Frederico实际上,正则表达式的表现会更快,我相信有人会为这个特定情况提出一个。这只是一个DOM解析器更可靠,更通用,并且不必被教导去模糊地理解HTML。 – Gordon 2010-09-09 14:14:05

回答

4

您可以preg_split()


$yourArray = preg_split("/({{\w+}})/", $yourText, -1, PREG_SPLIT_DELIM_CAPTURE); 

The code


资源尝试:

关于同一主题:

+0

您需要将模式放在括号内。 – Gumbo 2010-09-09 14:13:16

+0

@Gumbo谢谢:) – 2010-09-09 14:23:45