From 49d3994372f200a6c46dbb084e2893c92bae7a1a Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Sun, 10 Aug 2025 20:28:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A8=E5=B1=80=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8E=92=E5=BA=8F=E5=87=BD=E6=95=B0=E5=AF=B9?= =?UTF-8?q?=20=E2=80=9C=E4=B8=8A=E3=80=81=E4=B8=AD=E3=80=81=E4=B8=8B?= =?UTF-8?q?=E2=80=9D=20=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quark_auto_save.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/quark_auto_save.py b/quark_auto_save.py index 136c876..c9f0f70 100644 --- a/quark_auto_save.py +++ b/quark_auto_save.py @@ -230,13 +230,15 @@ def sort_file_by_name(file): segment_base = 0 # 基础值:上=1, 中=2, 下=3 sequence_number = 0 # 序号值:用于处理上中下后的数字或中文数字序号 - # 严格匹配上中下标记:只有当上中下与集期话部篇相邻时才认为是段落标记 - # 避免误匹配文件内容中偶然出现的上中下字符 - if re.search(r'上[集期话部篇]|[集期话部篇]上', filename): + # 严格匹配上中下标记:支持多种格式 + # 1. 直接相邻:上集、期上 + # 2. 括号分隔:期(上)、集(中) + # 3. 其他分隔符:期-上、集_中 + if re.search(r'上[集期话部篇]|[集期话部篇]上|[集期话部篇]\s*[((]\s*上\s*[))]|[集期话部篇]\s*[-_·丨]\s*上', filename): segment_base = 1 - elif re.search(r'中[集期话部篇]|[集期话部篇]中', filename): + elif re.search(r'中[集期话部篇]|[集期话部篇]中|[集期话部篇]\s*[((]\s*中\s*[))]|[集期话部篇]\s*[-_·丨]\s*中', filename): segment_base = 2 - elif re.search(r'下[集期话部篇]|[集期话部篇]下', filename): + elif re.search(r'下[集期话部篇]|[集期话部篇]下|[集期话部篇]\s*[((]\s*下\s*[))]|[集期话部篇]\s*[-_·丨]\s*下', filename): segment_base = 3 # 统一的序号提取逻辑,支持多种分隔符和格式