fork download
  1. <?php
  2.  
  3. $data = <<<DATA
  4. func('name','family,address') , "lorem ipsom, is a..." , ['name','part']
  5. DATA;
  6.  
  7. $regex = '~
  8. (\w+\([^)]+\)
  9. |
  10. "[^"]+"
  11. |
  12. \[[^]]+\]
  13. (*SKIP)(*FAIL))
  14. |
  15. \h*,\h*
  16. ~x';
  17.  
  18. $parts = preg_split($regex, $data, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
  19. print_r($parts);
  20. ?>
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Array
(
    [0] => func('name','family,address')
    [1] => "lorem ipsom, is a..."
    [2] => ['name','part']
)