fork download
  1. <?php
  2.  
  3. $x='arg1 : val1 arg2="val2 = \'A\'" arg3 : val3';
  4.  
  5. preg_match_all('/(\S+?)\s*[:=]\s*(?:"([^"]*)"|(\S+))\s*/',$x,$m);
Success #stdin #stdout 0.02s 52432KB
stdin
Standard input is empty
stdout
array(4) {
  [0]=>
  array(3) {
    [0]=>
    string(14) "arg1 : val1   "
    [1]=>
    string(18) "arg2="val2 = 'A'" "
    [2]=>
    string(11) "arg3 : val3"
  }
  [1]=>
  array(3) {
    [0]=>
    string(4) "arg1"
    [1]=>
    string(4) "arg2"
    [2]=>
    string(4) "arg3"
  }
  [2]=>
  array(3) {
    [0]=>
    string(0) ""
    [1]=>
    string(10) "val2 = 'A'"
    [2]=>
    string(0) ""
  }
  [3]=>
  array(3) {
    [0]=>
    string(4) "val1"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "val3"
  }
}