gpt4 book ai didi

java - 在android中使用Pattern从标准文本中获取一些字符串

转载 作者:行者123 更新时间:2023-12-02 11:29:39 24 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它有一个基于 SMS 传入消息的广播接收器。

我想跟踪来自特定发件人号码的每条消息,并对该短信执行一些操作,例如,从每条消息中检索一些数据。

我要分析的消息体是这样的:

"Usted ha recibido 5.0 CUC del numero 55391393.Saldo principal 1565.0 CUC, linea activa hasta 2019-02-10, vence 2019-03-12"

我想用Pattern类提取,值以粗体标记。但我对正则表达式真的很陌生。有帮助吗?

这是我的实际代码:

public class SMSReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

final Bundle bundle = intent.getExtras();

try {

if (bundle != null) {

final Object[] pdusObj = (Object[]) bundle.get("pdus");

assert pdusObj != null;
for (Object aPdusObj : pdusObj) {

SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) aPdusObj);
String senderNum = currentMessage.getDisplayOriginatingAddress();
String message = currentMessage.getDisplayMessageBody();

/*
String body = currentMessage.getMessageBody().toString();
String address = currentMessage.getOriginatingAddress();
*/

Log.i("SmsReceiver", "senderNum: " + senderNum + "; message: " + message);

//Save to DB
if (senderNum.equals("Cubacel")) {

Toast.makeText(context, "senderNum: " + senderNum + ", message: " + message, Toast.LENGTH_LONG).show();

//Parse this SMS with Regular Expresions


} else {
//Search for transferred numbers pending
}

} // end for loop

} // bundle is null

} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" + e);
}
}
}

这是一个使用 JS 的示例工作代码,但我不知道如何在 Java 中实现 https://regexr.com/3mgq2

最佳答案

    String re1=".*?";   // Non-greedy match on filler
String re2="(5\\.0)"; // Float 1
String re3=".*?"; // Non-greedy match on filler
String re4="(55391393)"; // Number 1
String re5=".*?"; // Non-greedy match on filler
String re6="(1565\\.0)"; // Float 2

Pattern p = Pattern.compile(re1+re2+re3+re4+re5+re6,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

试试这个:)

关于java - 在android中使用Pattern从标准文本中获取一些字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49374056/

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