如何在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
是如何结合在一起的,但可能有不止一个特殊字符(比如空格)啊,你说得对。由于某种原因,我被困在%
上。两位否决这个答案的人请解释一下?