I am trying to extract information from a message on an android application using regex which I am not quite good at yet.
The information I need is highlighted in bold from the following string.
PFEDDTYGD Confirmed.on 14/6/21 at 12:46PMKsh260.00 received from 254725400049 JOHN DOE. New Account balance is Ksh1,666. Transaction cost, Ksh1
code: PFEDDTYGD, date: 14/6/21, time:12:46, amountreceived: 260.00, phone no:254725400049 customer: JOHN DOE
here is my code: NB: the string is in multiline format.
final String regex = "^([a-zA-Z0-9]+)\\s{1}[a-zA-Z0-9\\.\\s]+Ksh([0-9,.]+)\\sfrom\\s([a-zA-Z0-9\\.\\s]+)\\son\\s([0-9/]+)\\sat\\s([0-9:]+)\\s[A|P]M\\s.*$";
final String string2 = "PFEDDTYG0D Confirmed.on 14/6/21 at 12:46PMKsh260.00 received from 254725400049 JOHN DOE. New Account balance is Ksh1,666. Transaction cost, Ksh1";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string2);
if(matcher.find()) {
String code = matcher.group(1);
String amountReceived = matcher.group(2);
String from = matcher.group(3);
String date = matcher.group(4);
String time = matcher.group(5);
String format = "code: %s amount received: %s from: %s date: %s time: %s";
System.out.println(String.format(format, code, amountReceived, from, date, time));