gpt4 book ai didi

android - 从 BIZ(交易)短信中提取(解析)金额和描述

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:27 31 4
gpt4 key购买 nike

我正在执行以下步骤。

  1. 用正则表达式匹配短信

  2. 如果包含指定关键字,则从短信正文中获取值,如金额、描述(交易原因)、帐号(如果 ATM 取款)、交易类型(借方/贷方)

    此正则表达式不匹配所有类型的银行/交易短信,因此效率不高,是否有任何其他方式来识别银行消息。

示例短信:

1) 尊敬的客户,您的帐号 XXXXXX6377 已于 2005 年 19 月通过 Rs 215.000 贷记 作为 DBT/DBTL 资金转帐/2015 - 印度中央银行

2) A/c NN5715 借记 2000 卢比;自动柜员机世界数字图书馆。 A/c Bal(sub to chq realisatn)Rs13286.23,4 月 24 日 21:19。如果您不使用,请调用 1800226999 卡住您的卡。

3) 尊敬的客户,您的帐户 XXXXXXXX5666 已于 2 月 16 日贷记 INR8,922.00。信息。 INF*000080483346*工资。您的净可用余额为 8,922.00 印度卢比。

private static ArrayList<SmsDto> parsevalues(ArrayList<SmsDto> body_val) {
ArrayList<SmsDto> resSms = new ArrayList<>();
for (int i = 0; i < body_val.size(); i++) {
SmsDto smsDto = body_val.get(i);
Pattern regEx
= Pattern.compile("(?:inr|rs)+[\\s]*[0-9+[\\,]*+[0-9]*]+[\\.]*[0-9]+");
// Find instance of pattern matches
Matcher m = regEx.matcher(smsDto.getBody());
if (m.find()) {
try {
Log.e("amount_value= ", "" + m.group(0));
String amount = (m.group(0).replaceAll("inr", ""));
amount = amount.replaceAll("rs", "");
amount = amount.replaceAll("inr", "");
amount = amount.replaceAll(" ", "");
amount = amount.replaceAll(",", "");
smsDto.setAmount(Double.valueOf(amount));
if (smsDto.getBody().contains("debited") ||
smsDto.getBody().contains("purchasing") || smsDto.getBody().contains("purchase") || smsDto.getBody().contains("dr")) {
smsDto.setTransactionType("0");
} else if (smsDto.getBody().contains("credited") || smsDto.getBody().contains("cr")) {
smsDto.setTransactionType("1");
}
smsDto.setParsed("1");
Log.e("matchedValue= ", "" + amount);
if (!Character.isDigit(smsDto.getSenderid().charAt(0)))
resSms.add(smsDto);
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.e("No_matchedValue ", "No_matchedValue ");
}
}
return resSms;
}

最佳答案

用于从银行交易消息中找出金额。

(?i)(?:(?:RS|INR|MRP)\.?\s?)(\d+(:?\,\d+)?(\,\d+)?(\.\d{1,2})?)

用于从银行交易消息中找出商户名称。

(?i)(?:\sat\s|in\*)([A-Za-z0-9]*\s?-?\s?[A-Za-z0-9]*\s?-?\.?)

用于从银行交易消息中找出卡名(借记卡/信用卡)。

(?i)(?:\smade on|ur|made a\s|in\*)([A-Za-z]*\s?-?\s[A-Za-z]*\s?-?\s[A-Za-z]*\s?-?)

关于android - 从 BIZ(交易)短信中提取(解析)金额和描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068134/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com