From 83bfbff40aad65dff07371878f1e83170a15d169 Mon Sep 17 00:00:00 2001 From: youpaishidifu Date: Tue, 15 Sep 2026 18:00:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D[OCR=E8=BF=87=E6=BB=A4]?= =?UTF-8?q?=EF=BC=9A=E7=89=88=E6=9C=AC=E5=8F=B7=E8=A2=AB=E8=AF=AF=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E4=B8=BA=E6=97=B6=E9=97=B4=E6=88=B3=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E4=B8=A2=E5=BC=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 问题:OCR将版本号1.21.11识别后被正则表达式转换为时间戳1:21:11, 该时间戳被判定为过期(>300s),导致包含版本号的用户新消息被过滤器1丢弃 - 根因:_normalize_timestamps和_ocr_text_has_fresh_timestamp中的正则表达式 将点号分隔符[.]包含在分隔符集合中,错误匹配了版本号格式 - 修复:将第一个分隔符集合从[.;]改为[;:],排除点号作为首个分隔符 版本号(如1.21.11)使用纯点号分隔,不再被转换为时间戳 冒号/分号分隔的时间戳和混合分隔符(如9;51.24)仍正常转换 - 影响范围:_normalize_timestamps(第6982行)和_ocr_text_has_fresh_timestamp(第7068行) 两处正则表达式同步修改 --- monitor.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/monitor.py b/monitor.py index c7bf10f..5b4fc17 100644 --- a/monitor.py +++ b/monitor.py @@ -6977,10 +6977,14 @@ class MessageMonitor: return text # ⭐ Task #1666: 先处理分号/点作为分隔符的情况(精确匹配) - # 例如: 9;51.24 → 9:51:24, 16.28.40 → 16:28:40 - # 使用与第4092行相同的正则表达式,确保一致性 + # 例如: 9;51.24 → 9:51:24, 16.28.40 → 16:28.40 + # ⭐ Task #1716: 排除版本号误识别(如1.21.11被误转为时间戳1:21:11) + # 版本号通常用点号分隔(如1.21.11、v1.0.3),时间戳用冒号/分号分隔 + # 修改正则表达式:要求第一个分隔符不能是点号(排除版本号格式) + # 防止版本号被错误转换为时间戳导致消息丢弃 + # 修改说明:将第一个分隔符[.;]改为[;:],排除点号作为第一个分隔符 text = re.sub( - r'(?