diff --git a/src/parser.py b/src/parser.py index 9d420c0..37e08df 100644 --- a/src/parser.py +++ b/src/parser.py @@ -60,7 +60,27 @@ class HandoverLogParser: 船次日志列表(已合并同日期同班次同船名的记录) """ logs = [] - blocks = text.split(self.SEPARATOR) + + # 预处理:移除分隔符行(只保留内容分隔符,去掉单行的) + # 分隔符应该是独立一行,且前后有内容的 + lines = text.split('\n') + processed_lines = [] + i = 0 + while i < len(lines): + line = lines[i] + if line.strip() == self.SEPARATOR: + # 检查是否是单行分隔符(前后都是分隔符或空行) + prev_is_sep = i > 0 and lines[i-1].strip() == self.SEPARATOR + next_is_sep = i < len(lines)-1 and lines[i+1].strip() == self.SEPARATOR + if not (prev_is_sep and next_is_sep): + # 单行分隔符,跳过 + i += 1 + continue + processed_lines.append(line) + i += 1 + + processed_text = '\n'.join(processed_lines) + blocks = processed_text.split(self.SEPARATOR) for block in blocks: if not block.strip() or '日期:' not in block: