我要像存在於註釋Regualar則表達式來提取註釋參數
我已經做了提取參數這麼遠
$str = "(action=bla,arg=2,test=15,op)";
preg_match_all('/([^\(,]+)=([^,\)]*)/', $str, $m);
$data = array_combine($m[1], $m[2]);
var_dump($data);
這給了以下出來把
array (size=3)
'action' => string 'bla' (length=3)
'arg' => string '2' (length=1)
'test' => string '15' (length=2)
這是無視運(但我希望它有空值或空值)
但我想改善是,因此它可以在單引號內這種情況下值提取這些也
- (動作=「VAL」,ABC)將分配給動作
- (動作=「VAL」,ABC)相同,但它上面的也雙引號之間抽取值
- (動作= [123,11,23])現在動作動作將包含陣列123,11,23(在此還需要有或不帶提取)
我不不想要完整的解決方案(如果你能做到,那麼最受歡迎)但我至少需要兩個
編輯
(編輯按與r3mus disucssion) 輸出應該像
array (size=3)
'action' => string 'bla' (length=3)
'arg' => string '2' (length=1)
'test' => string '15' (length=2)
'op' => NULL
不錯,但這不是提取'op'如告訴 –
好吧,掛在..在這個例子中,op被忽略。如果',op'不存在,你只希望它匹配嗎?或者只有'test = 15'是最後一個對象?你能詳細說明這個要求嗎? – brandonscript
它可以出現在任何地方 –