Php 如何使用preg_match_all查找字符串前面的数字

Php 如何使用preg_match_all查找字符串前面的数字,php,preg-replace,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){

我使用以下代码在数组中的一个单词后查找一个数字。哪个工作正常

   $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;
对于上述数据,结果应为

20960

可以按如下方式反转正则表达式:

/([0-9,]+[.\d][\d]*)\s*(?:(?!".$key.").)*/i
(?!“$key.”)*
将匹配到的所有内容,但不包括您的密钥

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