Вы можете использовать это регулярное выражение и извлечь три значения из group1, group2 и group3, и, конечно, я могу предположить, что ваш текст SMS будет в том же формате.
from\s+(\d+).*([a-zA-Z0-9]{10})\s+at\s+(.*)
Regex Demo 1
Демонстрационный код PHP
$sms = 'Cash In Tk 500.00 from 01789788881 successful. Fee Tk 0.00. Balance Tk 4,145.08. TrxID 6E63D2OS4R at 06/05/2019 20:24';
preg_match_all('/from\s+(\d+).*([a-zA-Z0-9]{10})\s+at\s+(.*)/', $sms, $matches);
print('Mobile Number: '.$matches[1][0]."\n");
print('Transaction Id: '.$matches[2][0]."\n");
print('Date Time: '.$matches[3][0]."\n");
Выход
Mobile Number: 01789788881
Transaction Id: 6E63D2OS4R
Date Time: 06/05/2019 20:24
Edit:
Для получения Cash In Tk 500.00 and Fee Tk 0.00
вы можете использовать следующее регулярное выражение,
(\S+)\s+from\s+(\d+).*Fee\s+Tk\s+(\S+)\..*([a-zA-Z0-9]{10})\s+at\s+(.*)
Regex Demo 2
Обновленная демонстрация PHP
$sms = 'Cash In Tk 500.00 from 01789788881 successful. Fee Tk 0.00. Balance Tk 4,145.08. TrxID 6E63D2OS4R at 06/05/2019 20:24';
preg_match_all('/(\S+)\s+from\s+(\d+).*Fee\s+Tk\s+(\S+)\..*([a-zA-Z0-9]{10})\s+at\s+(.*)/', $sms, $matches);
print('Cash In Tk: '.$matches[1][0]."\n");
print('Mobile Number: '.$matches[2][0]."\n");
print('Fee Tk: '.$matches[3][0]."\n");
print('Transaction Id: '.$matches[4][0]."\n");
print('Date Time: '.$matches[5][0]."\n");
печать
Cash In Tk: 500.00
Mobile Number: 01789788881
Fee Tk: 0.00
Transaction Id: 6E63D2OS4R
Date Time: 06/05/2019 20:24