プロが教えるわが家の防犯対策術!

文字列「X="0123あいうえおabcd"」があったら、数値0123だけ取得したいのですが、どのようにしたら良いでしょうか?

A 回答 (3件)

こんな感じで。



<?php
$str = "123文字列456hogehoge7.8904";

if (preg_match_all("/\\d+/", $str, $ary)) {
foreach ($ary[0] as $v) {
print "$v\n";
}
}

先頭の一つだけ取れればいいのなら、_allを使う必要はありません。
また、小数点付きの数をきちんと取り出したいときには
正規表現を工夫してください。
    • good
    • 0

たとえばこんな感じで



<?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;
?>
    • good
    • 3

んでは私もひとつ。


<?php
$str='X="0123あいうえおabcd"';
echo mb_ereg_replace('[^0-9]', '', $str);
//0~9以外の文字を削除
    • good
    • 6

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!