使用preg_match解析具有三个字母的数字

时间:2017-02-01 08:02:45

标签: php regex preg-match preg-match-all

我有一个字符串,我必须解析数字,其中有三个字母,但我想使用preg_match使用相同的模式。

这是我的代码,任何人都可以帮助我。

$string=" AMOUNT - 10.00CAD  0.50XGA  1.00XQA";
if(preg_match('/^\s+AMOUNT\s+\-\s+\d+[.]\d+[A-Z]{3}\s+((?J)(?<amount>\d+[.]\d+)(XGA)?(?J)\s+(?<amount>\d+[.]\d+)(XQA))/',$string,$m))
{
    print_r($m);
}

1 个答案:

答案 0 :(得分:0)

我这样使用preg_match_all

$string=" AMOUNT - 10.00CAD  0.50XGA  1.00XQA";
if(preg_match_all('/^\s+AMOUNT\s+-\s+(*SKIP)(*F)|(\d+\.\d+)[A-Z]{3}\b/', $string, $m)) {
    print_r($m);
}

<强>输出:

Array
(
    [0] => Array
        (
            [0] => 10.00CAD
            [1] => 0.50XGA
            [2] => 1.00XQA
        )

    [amount] => Array
        (
            [0] => 10.00
            [1] => 0.50
            [2] => 1.00
        )

    [1] => Array
        (
            [0] => 10.00
            [1] => 0.50
            [2] => 1.00
        )

)