fork(3) download
  1. <?php
  2.  
  3. $re = '@\[([a-zA-Z0-9]+)\]|[][=?~#!]@';
  4. $strs =array('DeviceLocation[West12]', '#=Device', '?[1234]=#Martin');
  5.  
  6. foreach ($strs as $str) {
  7. preg_match_all($re, $str, $matches, PREG_SET_ORDER);
  8. $results = array();
  9. $match_val = "";
  10. foreach ($matches as $m) {
  11. if (!empty($m[1])) {
  12. $match_val = trim($m[1], "[]");
  13. array_push($results, "[]");
  14. } else {
  15. array_push($results, $m[0]);
  16. }
  17. }
  18. echo "Value: " . $match_val . "\n";
  19. echo "Symbols: " . implode(", ", $results);
  20. echo "\n-----\n";
  21. }
  22.  
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
Value: West12
Symbols: []
-----
Value: 
Symbols: #, =
-----
Value: 1234
Symbols: ?, [], =, #
-----