修复[OCR过滤]:版本号被误识别为时间戳导致消息丢弃
- 问题: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行) 两处正则表达式同步修改
This commit is contained in:
+12
-4
@@ -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'(?<![;.0-9A-Za-z%])(\d{1,2})([.;])(\d{2})(?:[.;:](\d{2}))?(?![;.0-9A-Za-z%])',
|
||||
r'(?<![;.0-9A-Za-z%])(\d{1,2})([;:])(\d{2})(?:[.;:](\d{2}))?(?![;.0-9A-Za-z%])',
|
||||
lambda m: f'{m.group(1)}:{m.group(3)}:{m.group(4)}' if m.group(4) else f'{m.group(1)}:{m.group(3)}',
|
||||
text)
|
||||
|
||||
@@ -7065,8 +7069,12 @@ class MessageMonitor:
|
||||
# ')youpaishidifu 服务器的基本信息有哪些?'被过滤器1丢弃。
|
||||
# 第二段放宽为任意[.;:],与stage splitting的_line_has_fresh_ts
|
||||
# (\d{1,2}[:;.]\d{1,2}(?:[:;.]\d{1,2})?)对齐;URL残片防护靠前后顾不变。
|
||||
# ⭐ Task #1716: 排除版本号误识别(如1.21.11被误转为时间戳1:21:11)
|
||||
# 版本号通常用点号分隔(如1.21.11、v1.0.3),时间戳用冒号/分号分隔
|
||||
# 修改正则表达式:要求第一个分隔符不能是点号(排除版本号格式)
|
||||
# 防止版本号被错误转换为时间戳导致消息丢弃
|
||||
normalized = re.sub(
|
||||
r'(?<![;.0-9A-Za-z%])(\d{1,2})([.;])(\d{2})(?:[.;:](\d{2}))?(?![;.0-9A-Za-z%])',
|
||||
r'(?<![;.0-9A-Za-z%])(\d{1,2})([;:])(\d{2})(?:[.;:](\d{2}))?(?![;.0-9A-Za-z%])',
|
||||
lambda m: f'{m.group(1)}:{m.group(3)}:{m.group(4)}' if m.group(4) else f'{m.group(1)}:{m.group(3)}',
|
||||
normalized)
|
||||
timestamps = re.findall(r'\d{1,2}:\d{1,2}(?::\d{1,2})?', normalized)
|
||||
|
||||
Reference in New Issue
Block a user