✨ feat(command): 命令名支持中文、数字、字母等任意非空白字符
- 正则从仅匹配中文改为匹配任意非空白字符(\S) - 中文、数字、字母、其他字符均按 1 个字符计数 - 长度范围仍由 COMMAND_LENGTH_MIN/MAX 控制
This commit is contained in:
@@ -8,9 +8,16 @@ from ..config import COMMAND_CALLBACK_URL, COMMAND_LENGTH_MAX, COMMAND_LENGTH_MI
|
|||||||
|
|
||||||
|
|
||||||
def build_command_pattern() -> re.Pattern:
|
def build_command_pattern() -> re.Pattern:
|
||||||
"""构建命令匹配正则:# + 2~4个中文字,后面可跟空格+内容或无内容。"""
|
"""构建命令匹配正则:# + N个字符(中文/数字/字母/下划线等),后面可跟空格+内容或无内容。
|
||||||
|
|
||||||
|
每个"字符"按 Unicode 码点计:
|
||||||
|
- 一个中文字 = 1
|
||||||
|
- 一个数字 = 1
|
||||||
|
- 一个英文字母 = 1
|
||||||
|
- 其他非空白字符 = 1
|
||||||
|
"""
|
||||||
return re.compile(
|
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,
|
re.DOTALL,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user