2012-07-12 49 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);