2013-12-08 45 views
0

我不擅長正則表達式。請幫助做出表達。php正則表達式匹配自定義

$subject = "action[attribute1=value1,attribute2=values,...]"; 
// format is ^word[str=str,...]$ 

我需要匹配「action」,「attributes」和「values」。謝謝。

+1

你嘗試過什麼至今?另外,你能澄清一點你需要的正則表達式嗎? – thesquaregroot

+0

#。*?(\\ [。*?\\])#,但是這隻返回[...]。 我有一個函數,它必須允許用戶或組繼續使用另一個函數: allow('restricted [group = admin]'); // if($ user-> group == admin)call_user_func('restricted'); –

回答

1

首先找到與之匹配的正則表達式模式\b(\w+)\[((?:(?<=[,\[])(?:\w+)=(?:[^,\]]+)[,\]]?)+)]

Regular expression visualization

付諸行動的名稱1名和參數列表組2


在下面的步驟從上述正則表達式

Regular expression visualization

應用正則表達式(?:^|(?<=,))(\w+)=([^,\]]+)(?=,|$)組2獲得屬性和關聯值的列表...

+0

漂亮的圖形 - 你怎麼生成它們? –

+0

@EdCottrell :: https://www.debuggex.com/ –

+0

很酷,謝謝。 –