2010-09-09 59 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