簡體   English   中英

將正則表達式與無序的字母和數字字符串匹配

[英]Match regex with unordered string of alphabets and numbers

我有要查找其型號的產品名稱。 例如

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,這不是型號。 還有一個型號 分為兩個要素。

如果您不介意使用捕獲組,並且型號始終是該行中的第一個匹配項,則可以執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM