File size: 1,002 Bytes
722ce17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import re

def normalize_query(query):
    """
    Only normalize type-like patterns (e.g., С-25, C-25, Т-40 → C25, T40)
    without touching the rest of the Russian text.
    """
    def repl(m):
        cyr_to_lat = {'С': 'C', 'с': 'C', 'Т': 'T', 'т': 'T', 'У': 'U', 'у': 'U'}
        letter = cyr_to_lat.get(m.group(1), m.group(1))
        return f"{letter}{m.group(2)}"

    return re.sub(r'\b([СсТтУуCTU])[-\s]?(\d+)\b', repl, query)

tests = [
    "8. какие размеры будут у сварного шва для типа С-25 ?",
    "8. какие размеры будут у сварного шва для типа C-25 ?",
    "8. какие размеры будут у сварного шва для типа С25 ?",
    "8. какие размеры будут у сварного шва для типа Т-40 ?",
    "8. какие размеры будут у сварного шва для типа У-16 ?"
]

for t in tests:
    print(normalize_query(t))