2012-07-12 62 views
1

有一個字符串變量包含數字數據,說$x = "OP/12/DIR";。數字數據的位置可以在任何情況下通過用戶需求在應用程序內部修改而改變,並且斜槓可以被任何其他字符改變;但號碼數據是強制性的。那麼如何從字符串中提取數字數據呢?如何在PHP中的字符串中減去數字?

+0

總是由'/'在串圍是多少?這會讓你做一個簡單的爆炸,而不是一個(可能)討厭的preg。呃,沒關係,我看不懂。 – Fluffeh 2012-07-12 10:03:08

+2

@Fluffeh「,並且斜槓可以被任何其他字符」 – PeeHaa 2012-07-12 10:03:56

+0

「改變,該數字並不總是被'/'包圍! – pheromix 2012-07-12 10:04:38

回答

4

用空字符串替換不是數字的所有內容。

$numbers = preg_replace('/[^0-9]*/','',$x); 
+0

如果其餘的信息需要維護,這將是相當討厭的? – Fluffeh 2012-07-12 10:04:17

+0

正確,但$ x仍然完好 – rsplak 2012-07-12 10:04:48

+0

也是如此。我想我需要退出,而我在這個問題上的評論後面:) – Fluffeh 2012-07-12 10:08:11

1

更換everithing不是一個數字:

$numbers = preg_replace('/[^\d\.]/', '', $input); 

,或者如果你將擁有十進制:

$numbers = preg_replace ('#\D*?(\d+(\.\d+)?)\D*#', '$1', $input);