17952


数値以外の単位などを含む文字列から、数値のみを抽出する方法を教えてください。

例えば、以下のようなケースです。

  * `体重６２．５ｋｇ` -> `62.5`


CC BY-SA 3.0
2015-10-22T08:52:37.103
17947
2015-10-22T09:50:29.820
3423
question
php
数字以外を含む全角文字列から数字のみを抽出したい


以下で出来ました。

[code]

    function ExtractNumeric($str){
      $str = mb_convert_kana($str,"as");
      $str = preg_replace('/[^0-9\.]/','',$str);
      return (float)$str;
    }
    
[/code]


CC BY-SA 3.0
2015-10-22T09:30:39.577
17950
2015-10-22T09:30:39.577
3423
17947
answer


文字列に複数の数値が含まれている場合を考慮すると `preg_match_all()` の方が良いかも知れません。

[code]

    $str = "身長１７８．２ｃｍ、体重６２．５ｋｇ";
    
    $str = mb_convert_kana($str, "as");
    preg_match_all('/[\d.]+/', $str, $matches);
    var_dump($matches[0]);
    =>
    array(2) {
      [0]=>
      string(5) "178.2"
      [1]=>
      string(4) "62.5"
    }
    
[/code]


CC BY-SA 3.0
2015-10-22T09:50:29.820
17952
2015-10-22T09:50:29.820
17947
answer