我在正則表達式中並不擅長。我創建了一個函數,用於在數組中的第一個匹配詞後找出特定的詞。代碼是查找特定單詞後的單詞
$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 //這裏的定義是無視的。
$result=preg_match_all("/(?<=(".$key."))\s*(\d*\.?\d*)/",$smsdata,$networkID);
給出的結果「空白」和8183.79 //這裏的第一個結果是空白
我希望結果是NER13082010132400255和8183.79
我修改我的問題,因爲它給一些錯誤的結果另一個案例 – newcomer
可能重複[正則表達式:如何第一個字一個表達式匹配後(HTTP://計算器.com/questions/546220/regex-how-to-match-the-first-word-after-an-expression) – hakre