- ベストアンサー
文字列から数値だけ取得するにはどのようにしたらよいでしょうか?
文字列「X="0123あいうえおabcd"」があったら、数値0123だけ取得したいのですが、どのようにしたら良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たとえばこんな感じで <?PHP $str='X="0123あいうえおabcd"'; preg_match("/[0-9]+/",$str,$match); print $match[0]; ?> 1箇所しかないとわかっている、もしくは最初にあらわれる数字だけ 選べばよいならこれですみますが、複数ある場合はこんな風ですね <?PHP $str='X="0123あいうえお456abcd789"'; preg_match_all("/[0-9]+/",$str,$match); foreach($match[0] as $val) print $val; ?>
その他の回答 (2)
- tany180sx
- ベストアンサー率63% (239/379)
回答No.3
んでは私もひとつ。 <?php $str='X="0123あいうえおabcd"'; echo mb_ereg_replace('[^0-9]', '', $str); //0~9以外の文字を削除
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
こんな感じで。 <?php $str = "123文字列456hogehoge7.8904"; if (preg_match_all("/\\d+/", $str, $ary)) { foreach ($ary[0] as $v) { print "$v\n"; } } 先頭の一つだけ取れればいいのなら、_allを使う必要はありません。 また、小数点付きの数をきちんと取り出したいときには 正規表現を工夫してください。