2011-01-09 70 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...等