2011-01-09 110 views
6

我讨厌正则表达式,我希望有人可以帮助调节表达式与preg_replace一起使用。preg_replace - 从字符串中去掉不需要的字符以返回数字值

我想从字符串中去掉不需要的字符串,只使用preg_replace返回一个数值。

的字符串格式可能如下:

SOME TEXT£100

£100 SOME TEXT

SOME TEXT 100 SOME TEXT

非常感谢

+1

所以所有这些产量100,对吧? `1abc00`会发生什么? – BoltClock 2011-01-09 13:48:03

+1

更棒的是,“£1.00”呢? – Kobi 2011-01-09 13:52:30

回答

16
$NumericVal = preg_replace("/[^0-9]/","",$TextVariable); 

的^ []内是指除了以下

编辑 去除多余的东西+

0
preg_replace('/[^0-9]/','',$text); 
+0

这也给了Boltclock的例子`100`。 – AndreKR 2011-01-09 13:50:10

0

试试这个:

preg_replace("/\D+/", "", "SOME TEXT £100") 

您还可以使用preg_match拿到的第一个数字:

preg_match("/\d+/", "SOME TEXT £100", $matches); 
$number = $matches[0]; 
8
$l = preg_replace("/[^A-Z0-9a-z\w ]/u", '', $l); 

作品女巫UTF-8,只允许A-Z a-z 0-9łwóc...等