从字符串中删除所有内容,但使用preg_replace删除数字,点和单个字母

时间:2012-05-02 10:53:24

标签: php

如何修改此代码以删除来自给定字符串的所有内容 数字(已存在) AND 字符串:“。”,“k”,“B”和“M”?

我正在做的是解析给出的价格:123k,124.7B,20M

preg_replace("/\D/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" );

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题(如定义所述):

preg_replace("/[^\.kBM0-9]/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" );

我认为preg_match可能更好,特别是如果你的字符串中有多个数字(如你的例子中所示):

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

然后,所有数字应在$match数组中很好地分开。