2012-01-16 71 views
0


我不知道如何从字符串中删除了“问号字符”这样的:删除特定标志的正则表达式

8�901.9631 

我想使用正则表达式。我试图用这个正则表达式:

#(\d+).(\d+(?:\.\d{1,4})?)# 

但它不起作用。

回答

4

如果你知道所有其他字符是数字和时间,你可以这样做:

$string = '8�901.9631'; 
$new_string = preg_replace('/[^\d\.]/', '', $string); 
echo $new_string; //8901.9631 

基本上,这是消除一切,是[^ ])一批(\d)或时间段(\. )。

+0

这就是它!非常感谢:) – sunpietro 2012-01-16 19:58:58

+1

这引发了你之后获得的'8901.9631'是否可以接受的问题。但否则,+1 – 2012-01-16 19:59:58

3

如果需要清理字符串,并将其转换为float可以使用例如filter_var方法:

filter_var($string, FILTER_SANITIZE_NUMBER_FLOAT);