Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中除去除数字以外的所有内容中的字符串_Php_Html_Preg Replace - Fatal编程技术网

如何在PHP中除去除数字以外的所有内容中的字符串

如何在PHP中除去除数字以外的所有内容中的字符串,php,html,preg-replace,Php,Html,Preg Replace,当前,当我echo我保存的字符串时,它如下所示: •94%为阳性· 我想要的只是: 94 我认为下面的方法可以奏效: preg_replace(“/[^0-9]/”,“,$string) 但出于某种原因(我假设要点是这样的),这样做反而给了我这样的结果: 94018332 如果您的数字总是在第一个和后面的字符上,那么您可以使用诸如或intval之类的函数。如果您是正确的,则项目符号将作为HTML实体处理,因此包含数字 但是,由于您的格式足够具体,因此可以使用更好的正则表达式: preg_matc

当前,当我
echo
我保存的字符串时,它如下所示:

•94%为阳性·

我想要的只是:

94

我认为下面的方法可以奏效:

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

但出于某种原因(我假设要点是这样的),这样做反而给了我这样的结果:

94018332


如果您的数字总是在第一个和后面的字符上,那么您可以使用诸如或
intval
之类的函数。如果您是正确的,则项目符号将作为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

你只是试着去投吗

echo (int) trim("• 94% positive ·", "•  ·");
echo (int) trim("• 94% positive", "•  ·");
两者都应输出到:

94

亲切问候…

这在功能上与原始代码相同,因此由于middot的特殊字符而无法工作。您的演示是一个句号,而不是html项目符号。无论哪种方式,它都应该work@webnoob,这只是为了演示。我不想为此寻找unicode字符。如果你真的尝试重建原始字符串,你会发现它不起作用。但是HTML编码的百分号怎么会导致
94018332
?@Pekka웃 它和百分号无关,一切都和正午有关。我不确定middot和
018332
是如何结合在一起的,但可能有不止一个特殊字符(比如空格)啊,你说得对。由于某种原因,我被困在
%
上。两位否决这个答案的人请解释一下?