(line: str)
| 1603 | |
| 1604 | |
| 1605 | def normalize_heading(line: str) -> str: |
| 1606 | line = normalize_pdf_text_artifacts(line or "").strip().lower() |
| 1607 | line = re.sub(r"^\s*(?:section\s*)?\d+(\.\d+)*[\s.、.::-]*", "", line) |
| 1608 | line = re.sub(r"^\s*[一二三四五六七八九十百千]+[、..:\s-]*", "", line) |
| 1609 | line = re.sub(r"^\s*[ivxlcdm]+[.)\s]+", "", line) |
| 1610 | line = re.sub(r"[^a-z0-9\u3400-\u9fff\s]", " ", line) |
| 1611 | line = re.sub(r"(?<=[\u3400-\u9fff])\s+(?=[\u3400-\u9fff])", "", line) |
| 1612 | return re.sub(r"\s+", " ", line).strip() |
| 1613 | |
| 1614 | |
| 1615 | SECTION_ALIASES = { |
no test coverage detected