想要preg_match数字和期间的PHP

时间:2016-04-20 16:30:45

标签: php preg-match

我有这个字符串&OrigPlacedDate=41759.7128&,我希望将数字匹配在正确的位置。我尝试过使用

$string = '&OrigPlacedDate=41759.7128&'
$origPlacedDate = '/&OrigPlacedDate=[0-9^\.]*&/';
preg_match($origPlacedDate, $string, $origPlacedDateMatches);
$origPlacedDate = preg_replace('/[^0-9]/', '', $origPlacedDateMatches);
print_r($origPlacedDate);

但我只是得到了数字。

Array ( [0] => 417597128 ) 

最终我希望得到41759.7128的输出

2 个答案:

答案 0 :(得分:0)

您正在匹配数字,但未在正则表达式中包含.。试试这个:

$string = '&OrigPlacedDate=41759.7128&';
$origPlacedDate = '/&OrigPlacedDate=[0-9^\.]*&/';
preg_match($origPlacedDate, $string, $origPlacedDateMatches);
$origPlacedDate = preg_replace('/[^0-9\.]/', '', $origPlacedDateMatches);
print_r($origPlacedDate);

输出:

Array
(
    [0] => 41759.7128
)

答案 1 :(得分:0)

为什么不使用简单的正则表达式来使用更简单的方法?

map.addLayer({
    "id": "markers",
    "type": "symbol",
    "source": "markers",
    "layout": {
        "icon-image": "{marker-symbol}-15",
        "text-field": "{title}",
        "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
        "text-offset": [0, 0.6],
        "text-anchor": "top"
    }
});

输出:

  

41759.7128