我有一個用字串
我想要截取裡面的數字
數字有可能是 int float
範例如下
$lines = ' 加分項目8 15.test 4.00 -4.00 (4.00) 4.00 4.00 4.00 4.00 4.00 4';
preg_match_all('/\s+\(?-?\d+(\.\d+)?\)?/',$lines,$data);
print_r($data[0]);
結果為
Array
(
[0] => 15
[1] => 4.00
[2] => -4.00
[3] => (4.00)
[4] => 4.00
[5] => 4.00
[6] => 4.00
[7] => 4.00
[8] => 4.00
[9] => 4
)
我是希望那個 15 不要抓到
因為 15.後面不是接數字
不是我要的
請問要怎麼修改呢
謝謝
語法改為
/\s+\(?-?\d+(\.\d+|(?!\d*\.[^\d]))\)?/
結果如下:
Array
(
[0] => 4.00
[1] => -4.00
[2] => (4.00)
[3] => 4.00
[4] => 4.00
[5] => 4.00
[6] => 4.00
[7] => 4.00
[8] => 4
)
主要是排除掉整數後面不能跟著 數字.非數字 。