Cómo modificar este código para eliminar todo lo de una cadena determinada excepto números (ya están allí) Y cadenas : " . "," k "," B "y" M "?

Lo que estoy haciendo es analizar los precios dados en: 123k, 124.7B, 20M

preg_replace("/\D/", "", "<td>Cost: 20b $, Sell for: 139k $</td>" );
php
0
Szymon Toda 2 may. 2012 a las 14:53

1 respuesta

La mejor respuesta

Esto debería funcionar (como se define en la pregunta):

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

Creo que preg_match puede ser mejor, especialmente si hay más de un número en su cadena (como en su ejemplo):

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

Todos los números deben estar bien separados en la matriz $match.

0
Paul 2 may. 2012 a las 15:07