如何从除数字之外的所有内容中删除PHP中的字符串

时间:2013-03-03 23:05:18

标签: php html preg-replace

目前,当我echo我保存的字符串时,它看起来像这样:

  

•94%正面·

我想要的只是:

  

94

我认为以下方法可以解决问题:

  

preg_replace(“/ [^ 0-9] /”,“”,$ string)

但由于某种原因(我正在考虑要点)这样做而不是给我这个:

  

94018332

任何帮助才能得到“94”?

4 个答案:

答案 0 :(得分:3)

你是对的,子弹点正在作为HTML实体处理,因此包含数字。

但是,由于您的格式足够具体,您可以使用更好的正则表达式:

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

这个正则表达式专门搜索数字,后面紧跟百分号(只有第一个这样的匹配)。

答案 1 :(得分:3)

您可以使用过滤功能过滤掉数字。

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

Demo

答案 2 :(得分:1)

如果您的号码始终位于第一个和后一个字符上,则可以使用floatvalintval等功能。

答案 3 :(得分:-1)

您是否只是尝试演员?

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

两者都应输出到:

94

亲切的问候......