2

現在、echo保存した文字列は次のようになります。

•94%ポジティブ・

代わりに私が欲しいのは単純です:

94

私は次のことがうまくいくと思いました:

preg_replace( "/ [^ 0-9] /"、 ""、$ string)

しかし、何らかの理由で(私は箇条書きを想定しています)、代わりにそうすることでこれが得られます:

94018332

「94」だけを手に入れるのに何か助けはありますか?

4

4 に答える 4

3

正解です。箇条書きはHTMLエンティティとして処理されているため、数字が含まれています。

ただし、形式は十分に具体的であるため、より適切な正規表現を使用できます。

preg_match("/\d+(?=%)/",$string,$match);
$percentage = $match[0];

この正規表現は、数字の直後にパーセント記号が続く(そして最初のそのような一致のみ)を具体的に検索します。

于 2013-03-03T23:09:30.940 に答える
3

フィルタ機能を使用して、数値を除外できます。

$yourString =  "• 94% positive";
$int = filter_var($yourString, FILTER_SANITIZE_NUMBER_INT);
echo $int; //WIll echo 94

Demo

于 2013-03-03T23:09:35.897 に答える
1

floatval番号が常に最初と次の文字にある場合は、またはのような関数を使用できますintval

于 2013-03-03T23:09:07.973 に答える
-1

単にキャストしようとしましたか?

echo (int) trim("• 94% positive ·", "•  ·");
echo (int) trim("• 94% positive", "•  ·");

両方とも次のように出力する必要があります。

94

敬具...

于 2013-03-03T23:20:32.670 に答える