如何使用preg_match_all在字符串前查找数字

时间:2014-02-09 13:33:52

标签: php preg-replace

我使用以下代码在数组中找到一个单词。工作正常

   $searchkey = array('rs','balance is now','total');
    $data = "20960.00 of vTopUp transferred to your account, Your balance is now 21450.00 of vTopUp . No.is KONTH/1402/C00392.";
        foreach($searchkey as $key){
            $result=preg_match_all("/(?<=(".$key."))\s*([0-9,]+[.\d][\d]*)/i",$data,$networkID);
            if($result){$myanswer = @$networkID[0][0];break;}
        }
echo $myanswer;

注意:$ searchkey是固定的,$ data不是固定​​的。

现在我想在数组

中找到一个数字 之前的
$searchkey = array('of vTopUp','is success');

对于上述数据,结果应为

20960

1 个答案:

答案 0 :(得分:1)

您可以像这样反转正则表达式:

/([0-9,]+[.\d][\d]*)\s*(?:(?!".$key.").)*/i

(?!".$key.").)*会匹配所有内容,但不包括您的密钥。