fork download
  1. <?php
  2.  
  3. $re = '/(?J)(?<num>[0-9]*[.,]?[0-9]+)\h*(?<cur>\p{Sc})|(?<cur>\p{Sc})\h*(?<num>[0-9]*[.,]?[0-9]+)/u';
  4. $str = '12€
  5. 13 €
  6. €14
  7. € 125
  8. 142$
  9. 144 $
  10. $155
  11. $ 1567';
  12. $res = array();
  13. preg_replace_callback($re, function($m) use (&$res) {
  14. array_push($res, $m["num"] . " " . $m["cur"]);
  15. return $m[0];
  16. }, $str);
  17. print_r($res);
Success #stdin #stdout 0s 52488KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 12 €
    [1] => 13 €
    [2] => 14 €
    [3] => 125 €
    [4] => 142 $
    [5] => 144 $
    [6] => 155 $
    [7] => 1567 $
)