我有一個這樣的字符串:拆分正則表達式PHP
0d(Hi)i(Hello)4d(who)i(where)540d(begin)i(began)
,我想使其與數組。 我嘗試先添加分隔符,以便使用php函數爆炸。
;0,d(Hi),i(Hello);4,d(who),i(where);540,d(begin),i(began)
它的工作原理,但問題是我想盡量減少分隔符以節省磁盤空間。 因此我想通過使用使preg_split,正則表達式就知道了,如果有可能有這樣的一個巨大的數組,而無需使用分離器:
Array ([0] => Array ([0] => 0 [1] => d(hi) [2] => i(Hello))
[1] => Array ([0] => 4 [1] => d(who) [2] => i(where))
[2] => Array ([0] => 540 [1] => d(begin) [2] => i(began))
)
我嘗試一些代碼&正則表達式,但我看到的是,在常規的價值表達式不存在於最終結果中(如爆炸函數,在最後一個數組中,我們沒有分隔符)。
更多內容,我在構建正則表達式時遇到了一些困難。這裏是我做了一個:
$modif = preg_split("/[0-9]+(d(.+))?(i(.+))?/", $data);
我必須精確,以至於d()和我()可以不存在(但至少一個)
感謝
你的意思是'd(...)'或'我(...)'可能並不總是存在嗎?如果兩者都存在,它們總是按照這個順序嗎? – 2012-07-26 08:35:39
是的。總是在我之前,但是d可以缺席,我可以缺席,但不能同時缺席。 – Dahevos 2012-07-26 08:38:26