2017-03-06 43 views
1

我想從銀行交易短信中獲取商家名稱。爲此,我使用了以下regx;從交易短信中獲取商家名稱 - Android

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

它的正常工作與包含/那些短信,但如果短信中含有比這兩個詞等內容。例如,SMS就像;

尊敬的客戶:您已通過 作出1,600元借記卡購買。1月30日Info.VPS * AGGARWAL SH。

那麼如何取回AGGARWAL SH從上面的SMS?

回答

1

您可以使用下面的代碼這從字符串

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

獲取商戶名稱感謝@VikalpPatel其作品.. –