# -*- coding: utf-8 -*-
"""파싱 공통 유틸"""
import re

def parse_price(s):
    if s is None:
        return None
    digits = re.sub(r"[^\d]", "", str(s))
    return int(digits) if digits else None

def guess_region_code(address, cfg):
    """소재지 문자열 → 법정동코드 매칭 (config의 region_codes 역방향 탐색)"""
    if not address:
        return None
    for code, name in cfg["molit"]["region_codes"].items():
        # '수원시 장안구' → 시/구 단위 부분 일치
        parts = name.split()
        if all(p in address for p in parts):
            return code
        if parts[0] in address:   # 시 단위만 일치해도 후보
            candidate = code
    # 시 단위 일치 코드라도 반환
    for code, name in cfg["molit"]["region_codes"].items():
        if name.split()[0] in address:
            return code
    return None
