diff --git a/deploy/services/drhider.py b/deploy/services/drhider.py index 5487805..9e9b484 100644 --- a/deploy/services/drhider.py +++ b/deploy/services/drhider.py @@ -25,8 +25,8 @@ log = logging.getLogger("drhider") # ═══════════════════════════════════════════ ENTITY_PATTERNS: Dict[str, str] = { - "phone": r'(?:\+7|8)[\s\-]?\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{2}[\s\-]?\d{2}', - "email": r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', + "phone": r'\b(?:\+7|8)[\s\-]?\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{2}[\s\-]?\d{2}\b', + "email": r'\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b', # 12-значный ИНН ДО 10-значного (иначе 12-значный матчится как 10) "inn_fl": r'ИНН\s*\d{12}', "inn_ul": r'ИНН\s*\d{10}', @@ -34,7 +34,7 @@ ENTITY_PATTERNS: Dict[str, str] = { "kpp": r'КПП\s*\d{9}', "bik": r'БИК\s*\d{9}', "rs": r'(?:р/с|расч[её]тный\s*сч[её]т)\s*\d{20}', - "ks": r'(?:к/с|корр?[еи]?спондентский\s*сч[её]т)\s*\d{20}', + "ks": r'(?:к/с|кор/сч|корр?[еи]?спондентский\s*сч[её]т)\s*\d{20}', "passport": r'(?:паспорт|серия\s+номер)[\s:№]*\d{2}\s*\d{2}\s*\d{6,7}', } @@ -149,7 +149,7 @@ def generate_rs(original: str) -> str: def generate_ks(original: str) -> str: - prefix = re.match(r'(?:к/с|корр?[еи]?спондентский\s*сч[её]т)\s*', original, re.IGNORECASE).group(0) + prefix = re.match(r'(?:к/с|кор/сч|корр?[еи]?спондентский\s*сч[её]т)\s*', original, re.IGNORECASE).group(0) return prefix + "30101" + _random_digits(15) diff --git a/site/services/drhider.py b/site/services/drhider.py index 5487805..9e9b484 100644 --- a/site/services/drhider.py +++ b/site/services/drhider.py @@ -25,8 +25,8 @@ log = logging.getLogger("drhider") # ═══════════════════════════════════════════ ENTITY_PATTERNS: Dict[str, str] = { - "phone": r'(?:\+7|8)[\s\-]?\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{2}[\s\-]?\d{2}', - "email": r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', + "phone": r'\b(?:\+7|8)[\s\-]?\(?\d{3}\)?[\s\-]?\d{3}[\s\-]?\d{2}[\s\-]?\d{2}\b', + "email": r'\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b', # 12-значный ИНН ДО 10-значного (иначе 12-значный матчится как 10) "inn_fl": r'ИНН\s*\d{12}', "inn_ul": r'ИНН\s*\d{10}', @@ -34,7 +34,7 @@ ENTITY_PATTERNS: Dict[str, str] = { "kpp": r'КПП\s*\d{9}', "bik": r'БИК\s*\d{9}', "rs": r'(?:р/с|расч[её]тный\s*сч[её]т)\s*\d{20}', - "ks": r'(?:к/с|корр?[еи]?спондентский\s*сч[её]т)\s*\d{20}', + "ks": r'(?:к/с|кор/сч|корр?[еи]?спондентский\s*сч[её]т)\s*\d{20}', "passport": r'(?:паспорт|серия\s+номер)[\s:№]*\d{2}\s*\d{2}\s*\d{6,7}', } @@ -149,7 +149,7 @@ def generate_rs(original: str) -> str: def generate_ks(original: str) -> str: - prefix = re.match(r'(?:к/с|корр?[еи]?спондентский\s*сч[её]т)\s*', original, re.IGNORECASE).group(0) + prefix = re.match(r'(?:к/с|кор/сч|корр?[еи]?спондентский\s*сч[её]т)\s*', original, re.IGNORECASE).group(0) return prefix + "30101" + _random_digits(15)