2011-11-21 54 views
0

我有一個wordpress短碼,其中包含一些其他短碼。當第一個短代碼被執行時,我想用正則表達式過濾掉其他短代碼。使用正則表達式識別wordpress短碼

[main_code] 
    [sub_code id='testid']test content[/sub_code] 
    [sub_code id='testid' name='testname']test content[/sub_code] 
[/main_code] 

當我執行main_code我想的sub_code過濾成一個陣列,並且在不執行sub_code作爲短碼訪問其屬性。

任何有知識給我一個解決方案的人都高度評價。

回答

1

如果你想內部零件匹配,那麼我建議:

preg_match_all('~\[sub_code([^\[\]]*)]([^\[\]]+)\[/sub_code]~', $content, $result); 

[^\[\]]場比賽沒有方括號的任何內容。因此確保其內不能有其他簡碼。

+0

我試過你的代碼,它給出了一個有2個空元素的數組。我必須在匹配時考慮屬性 –

+0

爲參數添加了另一個佔位符。 – mario

+0

它幾乎是完美的。現在屬性被接收爲[1] =>數組 ( [0] => id ='testid' [1] => id ='testid'name ='teddsstname' [2] => id =' testid'name ='testname' )你有沒有建議單獨獲取屬性 –