2017-03-06 2 views
1

Ich möchte Merchant Name von Bank Transaktion SMS abrufen. Dazu habe ich folgenden Regx verwendet;Fetch Merchant Name von Transaktion SMS - Android

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

Seine Werke mit denen SMS Geldbuße, die bei/in enthält, aber was ist, wenn SMS enthält andere als diese beiden Worte. Zum Beispiel ist SMS wie;

Sehr geehrter Kunde, Sie haben eine Bankkarte Kauf von INR1,600.00 gemacht auf 30. Januar Info.VPS * AGGARWAL SH.

Dann, wie AGGARWAL SH von oben SMS holen?

Antwort

1

Sie können dies unter Code verwenden, Händlername von String

private void extractMerchantNameFromSMS(){ 
    try{ 
     String mMessage= "Dear Customer, You have made a Debit Card purchase of INR1,600.00 on 30 Jan. Info.VPS*AGGARWAL SH."; 
     Pattern regEx = Pattern.compile("(?i)(?:\\sInfo.\\s*)([A-Za-z0-9*]*\\s?-?\\s?[A-Za-z0-9*]*\\s?-?\\.?)"); 
     // Find instance of pattern matches 
     Matcher m = regEx.matcher(mMessage); 
     if(m.find()){ 
      String mMerchantName = m.group(); 
      mMerchantName = mMerchantName.replaceAll("^\\s+|\\s+$", "");//trim from start and end 
      mMerchantName = mMerchantName.replace("Info.",""); 
      FileLog.e(TAG, "MERCHANT NAME : "+mMerchantName); 
     }else{ 
      FileLog.e(TAG, "MATCH NOTFOUND"); 
     } 
    }catch(Exception e){ 
     FileLog.e(TAG, e.toString()); 
    } 
} 
+0

Dank @VikalpPatel Seine Werke zu holen .. –