从php中的字符串中获取整数

时间:2013-12-28 18:49:12

标签: php regex

我有一个表示温度的字符串。此字符串是从网站动态解析的,它也可以包含负值。例如,它可以是-1 C或2 C等等。

我想只得到整数值。这是我的代码:

$temp_number = preg_replace("/-?[0-9]+/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";

我认为temp_number应该是提取的数字,例如它是C​​。这是我的输出。

Temperature : 0℃   Number : ℃

我应该使用什么?我不想替换字符串,我想提取它。

5 个答案:

答案 0 :(得分:3)

请改为尝试:

$temp_number = preg_replace("/[^-0-9]+/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";

[^-0-9]+的正则表达式基本上表明它应该删除任何非-或数字的内容。

答案 1 :(得分:1)

intval似乎是一个明显的解决方案,比正则表达式简单得多。 (您的示例使得它看起来好像字符串始终只是一个数字后跟C,并且温度通常不会以小数形式记录,因此:intval。)

证明:http://ideone.com/DjI3jG

答案 2 :(得分:0)

你能试试这个,在你的正则表达式中使用/[^0-9]/

$number = preg_replace("/[^0-9]/", '', $value);

echo "Temperature : ". $value . "Number : ".$number ."<br/>";

答案 3 :(得分:0)

尝试使用"/[^0-9]/"作为正则表达式

$value="100";
$temp_number = (int)preg_replace("/[^0-9]/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";

输出:

Temperature : 100Number : 100

答案 4 :(得分:0)

1.Like Jessica上面说intval更简单

$value = '0℃';
$number = intval($value);
echo $number; // which is 0 integer

2.此外,您可以使用filter_var

$value = '0℃';
$number = filter_var($value,FILTER_SANITIZE_NUMBER_INT);