我在正则表达式方面不是那么专家。我创建了一个函数来在数组中的第一个匹配词之后找出特定的词。代码是
$searchkey1 = array('NUMBER', 'REF', 'TRANSACTION NUMBER');
$searchkey2 = array('CURRENT BALANCE RS.', 'NEW BALANCE IS');
$smsdata = "TRANSACTION NUMBER NER13082010132400255 TO RECHARGE 198 INR TO 9999999999 IS SUCCESSFUL. YOUR NEW BALANCE IS 8183.79 INR.";
function get_details($searchkey, $smsdata)
{
foreach ($searchkey as $key) {
$result = preg_match_all("/(?<=(" . $key . "))(\s\w*)/", $smsdata, $networkID);
$myanswer = @$networkID[0][0];
}
return $myanswer;
}
echo get_details($searchkey1, $smsdata);
echo "<BR>";
echo get_details($searchkey2, $smsdata);
我正在使用此功能来查找其他单词。它正在查找除十进制值之外的任何其他单词。在我的示例代码中,返回值为 11192 但我想用十进制作为 11192.75
请纠正我的错误。
$result=preg_match_all("/(?<=(".$key."))(\s\w*)/",$smsdata,$networkID);
给出结果 NER13082010132400255 和 8183 //这里的 demical 是忽略。
$result=preg_match_all("/(?<=(".$key."))\s*(\d*\.?\d*)/",$smsdata,$networkID);
给出结果“空白”和 8183.79 // 这里第一个结果是空白的
我想要的结果是 NER13082010132400255 和 8183.79