30 lines
920 B
Python
30 lines
920 B
Python
# -*- coding: utf-8 -*-
|
|
"""用 C# 同款拆分规则验证正泰格式的型号规格拆分(拆规格与名称)。"""
|
|
import re
|
|
|
|
def 拆(原始):
|
|
# 找最长连续中文段(>=2字)
|
|
best = None
|
|
for m in re.finditer(r'[\u4e00-\u9fa5]{2,}', 原始):
|
|
if best is None or len(m.group()) > len(best.group()):
|
|
best = m
|
|
if best:
|
|
名称 = best.group()
|
|
规格 = (原始[:best.start()] + ' ' + 原始[best.end():]).strip()
|
|
规格 = re.sub(r'\s+', ' ', 规格).strip(' -/')
|
|
return 规格, 名称
|
|
return 原始.strip(), ''
|
|
|
|
cases = [
|
|
"CA1-100/4300B/40A 断路器",
|
|
"CH1-63C16/1P",
|
|
"DJMB2 220/36 0.3kVA",
|
|
"RT12-63/4P 40A",
|
|
"CM3-63M/33002/50A 塑壳断路器",
|
|
"LAM-C40/4P",
|
|
"CH1L-32C20/1N 剩余电流断路器",
|
|
]
|
|
for c in cases:
|
|
规格, 名称 = 拆(c)
|
|
print(repr(c), '→ 规格:', repr(规格), ' 名称:', repr(名称))
|