Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 用preg_替换删除字符串中除数字、点和单个字母以外的所有内容_Php - Fatal编程技术网

Php 用preg_替换删除字符串中除数字、点和单个字母以外的所有内容

Php 用preg_替换删除字符串中除数字、点和单个字母以外的所有内容,php,Php,如何修改此代码以删除给定字符串中的所有内容,除了数字(已存在)和字符串:“.”、“k”、“B”和“M” 我所做的是分析给出的价格:123k,1247亿,2000万 preg_replace("/\D/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" ); preg\u replace(“/\D/”,“,”成本:20b$,售价:139k$”; 这应该可以做到(如有疑问的定义): preg_replace(“/[^\.kBM0-

如何修改此代码以删除给定字符串中的所有内容,除了数字(已存在)字符串:“.”、“k”、“B”和“M”

我所做的是分析给出的价格:123k,1247亿,2000万

preg_replace("/\D/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" );
preg\u replace(“/\D/”,“,”成本:20b$,售价:139k$”;
这应该可以做到(如有疑问的定义):

preg_replace(“/[^\.kBM0-9]/”,“,”成本:20亿美元,售价:13.9万美元“);
我认为preg_匹配可能更好,尤其是如果字符串中有多个数字(如示例所示):

preg\u match\u all(“/([0-9]+(\.[0-9]+)?\s?[kBM]?)/”,“成本:200亿美元,售价:13.9万美元,$match);
然后,所有数字都应该在
$match
数组中很好地分开

preg_replace("/[^\.kBM0-9]/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" );
preg_match_all("/([0-9]+(\.[0-9]+)?\s?[kBM]?)/", "<td>Cost: 20b $, Sell for: 139k $</td>", $match );