2012-05-13 55 views
0
[div="desc"][1="text1"][2="text2"][3="link3"][/div] 

它繼續能夠繼續的6 限制如何可以創建一個正則表達式是提取「遞減」,數字和文字? 我嘗試使用php數組,但我無法使用。PHP的bbcode遞歸正則表達式

謝謝!

+1

遞歸在哪裏?並且所有後續文本的格式是否相同? – Shubham

回答

2

這裏沒有遞歸 - 至少你的例子沒有顯示它。如果在你的一般情況下會出現遞歸,正則表達式將不起作用;你將不得不使用解析器。

對於這種情況,我會建議先使用preg_match_all和正則表達式像/ [([^]] +)] /。如果你傳遞一個數組matches到這個函數,在運行preg_match_all之後,matches[1]應該是一個包含字符串'[div =「desc」]','[1 =「text1」]'等的數組。一旦你有了這個數組,你可以使用foreach來循環遍歷它,並將每個字符串拆分爲=,然後對你解析的字符串的兩部分進行任何你喜歡的操作。