6

我怎样才能将$123USD123CAD$123元123动态分解成

array [0] = "$"
array [1] = 123

?

$keywords = preg_split("/[^0-9]/", "$123");

以上是我的测试代码,但我进不去$array[0]知道吗?

谢谢

4

4 回答 4

6
$string = '$123';

$string = preg_match('/^(\D+)(\d+)$/', $string, $match);

echo $match[1]; // $
echo $match[2]; // 123

分解:

^(\D+)在字符串开头匹配 1 个或多个非数字

(\d+)$匹配 1 个或多个数字直到字符串结束

于 2013-03-05T07:49:52.550 回答
3

试试这个,它对所有人都有效。

$str = 'CAD$123';
$num = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
$curr = explode($num,$str);

echo 'Your currency is '.$curr[0].' and number is '.$num;
于 2013-03-05T07:48:22.750 回答
0

你可以用这个

$txt='$123';

  $re1='(\\$)'; # Any Single Character 1
  $re2='(\\d+)';    # Integer Number 1

  if ($c=preg_match_all ("/".$re1.$re2."/is", $txt, $matches))
  {
      $c1=$matches[1][0];
      $int1=$matches[2][0];
      print "($c1) ($int1) \n";
  }

所有学分归http://txt2re.com

于 2013-03-05T07:50:12.563 回答
0

您可以将 preg_match 与以下正则表达式一起使用

preg_match('/([^0-9]*)([0-9\.]*)(.*)?/', '$20.99USD', $match);
var_dump($match);

以上会产生

Array
(
    [0] => $20.99USD
    [1] => $
    [2] => 20.99
    [3] => USD
)

它可以将 $、20.99、USD 解析为数组中的单独索引

于 2017-02-19T13:59:29.593 回答