From e62fc13f7cf46e83ac945fffa4925abca31762c1 Mon Sep 17 00:00:00 2001 From: zhilv Date: Sat, 2 May 2026 21:30:19 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(command):=20=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=90=8D=E6=94=AF=E6=8C=81=E4=B8=AD=E6=96=87=E3=80=81=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E3=80=81=E5=AD=97=E6=AF=8D=E7=AD=89=E4=BB=BB=E6=84=8F?= =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E7=99=BD=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 正则从仅匹配中文改为匹配任意非空白字符(\S) - 中文、数字、字母、其他字符均按 1 个字符计数 - 长度范围仍由 COMMAND_LENGTH_MIN/MAX 控制 --- handlers/command.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/handlers/command.py b/handlers/command.py index 545f705..54afa68 100644 --- a/handlers/command.py +++ b/handlers/command.py @@ -8,9 +8,16 @@ from ..config import COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MI def build_command_pattern() -> re.Pattern: - """构建命令匹配正则:# + 2~4个中文字,后面可跟空格+内容或无内容。""" + """构建命令匹配正则:# + N个字符(中文/数字/字母/下划线等),后面可跟空格+内容或无内容。 + + 每个"字符"按 Unicode 码点计: + - 一个中文字 = 1 + - 一个数字 = 1 + - 一个英文字母 = 1 + - 其他非空白字符 = 1 + """ return re.compile( - rf"^{re.escape(COMMAND_PREFIX)}([\u4e00-\u9fff]{{{COMMAND_LENGTH_MIN},{COMMAND_LENGTH_MAX}}})(?:\s+(.+))?$", + rf"^{re.escape(COMMAND_PREFIX)}(\S{{{COMMAND_LENGTH_MIN},{COMMAND_LENGTH_MAX}}})(?:\s+(.+))?$", re.DOTALL, )