2013-09-30 30 views
1

我有這個字符串,需要得到它的數字(整數或雙)。正則表達式來獲得任何數字不僅整數

串1北京時間

字符串2 - GMT +2.5

我已經使用這個來獲取整數出去串1的和需要知道如何編寫一個通用的一個得到2或2.5

以下是我寫的。

return preg_replace('/\D/', '', $str); 

但它不返回2.5,但將其作爲25而不是2.5

+0

嘗試HTTP:/ /stackoverflow.com/questions/19005899/regular-expression-for-string-price-with-hyphen/19006035#19006035使用這個正則表達式而不是你的 – Garfield

+0

你是否嘗試過任何可能實際工作的東西? –

回答

1

假設你輸入總是以數字結尾,您可以使用稍微修改代碼:

preg_replace('/^\D*/', '', $str); 
+0

像'foo 123 bar'這樣的字符串失敗 –

+0

@Kolink:應有的尊重不是OP輸入字符串的模式,它以數字結尾。 – anubhava

+0

這很公平,不過僅僅因爲它適用於這兩個字符串並不意味着它將適用於OP可能具有的每個字符串。更何況,OP可能會採取你的答案,並相信它可以在「找到一個可能有小數部分的數字」的所有情況下工作,只是發現它沒有 - 我已經看到這樣的事情發生在SO a上很多;) –