将正则表达式与无序的字母和数字字符串匹配

2024-10-03 21:36:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有产品名称,我必须找到型号。例如

KIPOR KDE38SS3 DIESEL 400V AGGREGAATTI # Result --> KDE38SS3 
KIPOR KDE28SS3 DIESEL 400V AGGREGAATTI # Result --> KDE28SS3 
KIPOR KDE19STA3  19 KW GENERAATTORI 400V # Result --> KDE19STA3  
KRÄNZLE C895-1 KUUMAVESIPESURI KELALLA # Result --> C895-1
KRÄNZLE 1165-1 KUUMAVESIPESURI KELALLA # Result --> 1165-1
NILFISK MH 4M-200/960 FA KUUMAVESIPESURI # Result --> MH 4M-200/960 FA
WALLIUS LMP-452i MIG HITSAUSKONE # Result --> LMP-452i
KRÄNZLE C15/150 KUUMAVESIPESURI KELALLA # Result --> C15/150

我目前的代码是简单的,在某些情况下工作,但我想得到一个有效的方法。你知道吗

for i in range (10):
    modelnum = re.findall(r'\w+\d+\w+', productnames[i])
    print(modelnum)

结果:

['KDE38SS3', '400V']
['KDE28SS3', '400V']
['KDE19STA3Â', '400V']
['C895']
['1165']
['200', '960']
['452i']
['C15', '150']

有没有办法,我只能解析模型号。因为在结果中,我也得到了400V,这不是一个模型号。还有一个模型号是打破了两个元素。你知道吗


Tags: 模型resultkrmhdieselc15nzlekde38ss3
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:46

如果您不介意使用捕获组,并且型号始终是行中的第一个匹配项,则可以执行以下操作:

for i in range (10):
    modelnum = re.findall(r'^.*?(\w+\d+\w+)', productnames[i])
    print(modelnum)

相关问题 更多 >