現在、echo
保存した文字列は次のようになります。
•94%ポジティブ・
代わりに私が欲しいのは単純です:
94
私は次のことがうまくいくと思いました:
preg_replace( "/ [^ 0-9] /"、 ""、$ string)
しかし、何らかの理由で(私は箇条書きを想定しています)、代わりにそうすることでこれが得られます:
94018332
「94」だけを手に入れるのに何か助けはありますか?
現在、echo
保存した文字列は次のようになります。
•94%ポジティブ・
代わりに私が欲しいのは単純です:
94
私は次のことがうまくいくと思いました:
preg_replace( "/ [^ 0-9] /"、 ""、$ string)
しかし、何らかの理由で(私は箇条書きを想定しています)、代わりにそうすることでこれが得られます:
94018332
「94」だけを手に入れるのに何か助けはありますか?
正解です。箇条書きはHTMLエンティティとして処理されているため、数字が含まれています。
ただし、形式は十分に具体的であるため、より適切な正規表現を使用できます。
preg_match("/\d+(?=%)/",$string,$match);
$percentage = $match[0];
この正規表現は、数字の直後にパーセント記号が続く(そして最初のそのような一致のみ)を具体的に検索します。
フィルタ機能を使用して、数値を除外できます。
$yourString = "• 94% positive";
$int = filter_var($yourString, FILTER_SANITIZE_NUMBER_INT);
echo $int; //WIll echo 94
floatval
番号が常に最初と次の文字にある場合は、またはのような関数を使用できますintval
。
単にキャストしようとしましたか?
echo (int) trim("• 94% positive ·", "• ·");
echo (int) trim("• 94% positive", "• ·");
両方とも次のように出力する必要があります。
94
敬具...