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

在php中从字符串中获取整数,php,regex,Php,Regex,我有一个表示温度的字符串。此字符串是从网站动态解析的,它也可以包含负值。例如,它可以是-1摄氏度,也可以是2摄氏度,依此类推 我只想得到整数值。这是我的密码: $temp_number = preg_replace("/-?[0-9]+/", '', $value); echo "Temperature : ". $value . "Number : ".$temp_number."<br/>"; 我应该用什么?我不想替换字符串,我想提取它。请尝试以下操作: $temp_numb

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

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

$temp_number = preg_replace("/-?[0-9]+/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";
我应该用什么?我不想替换字符串,我想提取它。

请尝试以下操作:

$temp_number = preg_replace("/[^-0-9]+/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";
$temp\u number=preg\u replace(“/[^-0-9]+/”,“”,$value);
回声“温度:”$价值“编号:“.$temp_编号”。
”;
[^-0-9]+
的正则表达式基本上表明,它应该去掉任何不是
-
或数字的东西。

试试这个:

$temp_number = preg_replace("/[^-0-9]+/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";
$temp\u number=preg\u replace(“/[^-0-9]+/”,“”,$value);
回声“温度:”$价值“编号:“.$temp_编号”。
”;

[^-0-9]+
的正则表达式基本上说明它应该去掉任何不是
-
或数字的东西。

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

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

echo "Temperature : ". $value . "Number : ".$number ."<br/>";
$number=preg\u replace(“/[^0-9]/”,“,”$value);
回声“温度:”$价值“编号:”.$Number.“
”;
你能试试这个吗,在你的正则表达式中使用
/[^0-9]/

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

echo "Temperature : ". $value . "Number : ".$number ."<br/>";
$number=preg\u replace(“/[^0-9]/”,“,”$value);
回声“温度:”$价值“编号:”.$Number.“
”;
尝试将
“/[^0-9]/”
用作正则表达式

$value="100";
$temp_number = (int)preg_replace("/[^0-9]/", '', $value); 
echo "Temperature : ". $value . "Number : ".$temp_number."<br/>";
尝试将
“/[^0-9]/”
用作正则表达式

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

intval
在这里似乎是一个显而易见的解决方案,比正则表达式简单得多。(您的示例使字符串看起来似乎总是一个后跟C的数字,并且温度通常不以小数记录,因此:
intval


证明:

intval
在这里似乎是一个显而易见的解决方案,比正则表达式简单得多。(您的示例使字符串看起来似乎总是一个后跟C的数字,并且温度通常不以小数记录,因此:
intval


证明:

1.就像杰西卡上面说的那样,
intval
要简单得多

$value = '0℃';
$number = intval($value);
echo $number; // which is 0 integer
2.此外,您还可以使用
filter\u var

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

1.就像上面杰西卡所说的,
intval
要简单得多

$value = '0℃';
$number = intval($value);
echo $number; // which is 0 integer
2.此外,您还可以使用
filter\u var

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

/\D+/
是更简单的等效模式。
/\D+/
是更简单的等效模式。
/\D+/
是更简单的等效模式。
/\D+/
是更简单的等效模式。