Чтобы поймать любое число с плавающей запятой, используйте:
preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);
, например:
<?
$string = 'ill -1.1E+10 ipsum +1,200.00 asdf 3.14159, asdf';
preg_match_all("/[+-]?\d+[\d\.Ee+]*/", $string, $matches);
var_dump($matches);
?>
, когда при запуске получается:
array(1) {
[0]=>
array(4) {
[0]=>
string(8) "-1.1E+10"
[1]=>
string(2) "+1"
[2]=>
string(6) "200.00"
[3]=>
string(7) "3.14159"
}
}