From 380d70f2f1cd03b314fa6de64df30eab914956ba Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 24 三月 2025 09:56:42 +0800
Subject: [PATCH] fix 324 免登陆,删除ActionBar
---
app/src/main/java/com/example/firstapp/entity/Rule.kt | 82 +++++++++++++++++++++++++++++++++++-----
1 files changed, 71 insertions(+), 11 deletions(-)
diff --git a/app/src/main/java/com/example/firstapp/entity/Rule.kt b/app/src/main/java/com/example/firstapp/entity/Rule.kt
index 3bb161e..c24c869 100644
--- a/app/src/main/java/com/example/firstapp/entity/Rule.kt
+++ b/app/src/main/java/com/example/firstapp/entity/Rule.kt
@@ -1,17 +1,77 @@
package com.example.firstapp.entity
-data class Rule(var type: String,var content: String ,var reg: String) {
+import java.time.LocalDateTime
- // 在 Rule 类中定义提取方法
- fun extractCodeFromMessage(message: String): String? {
- // 如果 message 包含 content
- if (message.contains(content)) {
- // 使用 reg 作为正则表达式进行匹配
- val regex = reg.toRegex()
- val matchResult = regex.find(message)
- return matchResult?.value // 如果找到匹配的内容,则返回
- }
- return null // 如果不匹配,返回 null
+class Rule(
+ val type: String,
+ val content: String,
+ val pattern: String
+) {
+ // 添加伴生对象存储多个正则表达式模式
+ companion object {
+ private val BANK_PATTERNS = mapOf(
+ "招商银行" to listOf(
+ // 第一种格式:账单¥xxx,还款日MM月dd日
+ "账单[¥¥](\\d+\\.?\\d*).*还款日(\\d{2})月(\\d{2})日",
+ // 第二种格式:账单金额xxx,还款日MM月dd日
+ "账单金额[::](\\d+\\.?\\d*).*还款日[::](\\d{2})月(\\d{2})日",
+ // 可以继续添加其他格式...
+ ),
+ "中国银行" to listOf(
+ "账单金额[::](\\d+\\.?\\d*).*还款日[::](\\d{1,2})日",
+ // 可以添加其他格式...
+ ),
+ // 其他银行的模式...
+ )
}
+ fun extractCodeFromMessage(message: String): String? {
+ if (type == "财务") {
+ // 获取该银行的所有正则表达式模式
+ val patterns = BANK_PATTERNS[content] ?: listOf(pattern)
+
+ // 尝试每一个正则表达式
+ for (pat in patterns) {
+ val regex = pat.toRegex()
+ val matchResult = regex.find(message)
+
+ matchResult?.let {
+ if (it.groupValues.size > 1) {
+ return it.groupValues[1].replace("[¥¥]".toRegex(), "")
+ }
+ }
+ }
+ return null
+ } else {
+ // 非财务类型的处理保持不变
+ val regex = pattern.toRegex()
+ val matchResult = regex.find(message)
+ return matchResult?.value
+ }
+ }
+
+ fun extractDueDate(message: String): String? {
+ if (type != "财务") return null
+
+ val patterns = BANK_PATTERNS[content] ?: listOf(pattern)
+
+ for (pat in patterns) {
+ val regex = pat.toRegex()
+ val matchResult = regex.find(message)
+
+ matchResult?.let {
+ when {
+ content == "招商银行" && it.groupValues.size > 3 -> {
+ return "${it.groupValues[2]}月${it.groupValues[3]}日"
+ }
+ it.groupValues.size > 2 -> {
+ return it.groupValues[2] + "日"
+ }
+
+ else -> {}
+ }
+ }
+ }
+ return null
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3