SMS - Android -来自交易的商家名称



我想从银行交易短信获得商户名称。为此,我使用了以下regx;

Pattern.compile("(?i)(?:\sInfo.\s*)([A-Za-z0-9*]*\s?-?\s?[A-Za-z0-9*]*\s?-?\.?)");
INR1.00 debited on Credit Card XX9007 on 11-Mar-19.Info:GOOGLE CLOUD.Avbl

不工作

那么如何从以上短信中获取GOOGLE CLOUD?

您的模式包含了比捕获所需值所需的更多的部分。

问题是Info之前没有空格,但模式试图将其与此部分(?:\sInfo.\s*)

匹配您还可以将模式简化为:

(?i)\bInfo:\s*([A-Za-z0-9]+\s[A-Za-z0-9]+)

查看regex演示。

或者更宽,使用反字符类捕获除点以外的任何字符:

(?i)\bInfo:\s*([^.]+)

查看另一个正则表达式演示。

最新更新