Я не так разбираюсь в регулярном выражении. Я создал функцию, чтобы узнать конкретное слово после первого слова соответствия из массива. кодНайти Слово после определенного слова
$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
у меня изменить мой вопрос, как он дает неправильные результаты в некоторых еще один случай – newcomer
возможный дубликат [Regex: Как соответствовать первое слово после выражения] (HTTP: // StackOverflow .com/questions/546220/regex-how-to-match-the-first-word-after-an-expression) – hakre