| 12345678910111213141516171819202122 |
- """知识点编码解析:多值分隔、族前缀匹配等。"""
- from __future__ import annotations
- import re
- _KNOWLEDGE_CODE_SPLIT = re.compile(r"[,\n;\uFF1B\uFF0C|/]+")
- def split_knowledge_codes(knowledge_code: str | None) -> list[str]:
- if not knowledge_code:
- return []
- parts = _KNOWLEDGE_CODE_SPLIT.split(knowledge_code)
- return [p.strip() for p in parts if p and p.strip()]
- def knowledge_family_prefix(code: str) -> str | None:
- """J7-EQ-001 -> J7-EQ-,用于同小节多编码的宽松匹配。"""
- c = (code or "").strip()
- m = re.match(r"^(.+)-\d+$", c)
- if m:
- return f"{m.group(1)}-"
- return None
|