2017-10-10 51 views
0

我試圖從產品標題列表中檢索產品模型。正則表達式從產品列表中查找模型

由於很難從標題中檢索模型,我決定從獲取大寫字母和數字的子字符串開始(它也可以包含特殊字符,但它們不是必需的)。

一些例子是:

  • 蘋果iPhone 8加64GB特拉的Retina 5.5" 1200萬像素/ 7MP iOS的11 - 普拉塔
  • 智能電視QLED德55" 三星QN55Q7FAMP COM HDMI/USB /無線網絡連接-Fi Bivolt
  • 智能電視QLED德65" 三星QN55Q7FAMP COM HDMI/USB /無線網絡連接Bivolt
  • MEMORIA DDR4關鍵16GB/2400關鍵BLS16G4D240FSE BALLISTIX小號
  • MEMORIA DDR4關鍵16GB/2400關鍵BLS16G4D240FSB BALLISTIX小號
  • MEMORIA DDR4關鍵16GB/2400關鍵BLS16G4D240FSC BALLISTIX小號
  • MEMORIA DDR4關鍵16GB/2400關鍵CT16G4DFD824A(SIN吸
  • Projetor LG MiniBeam PW1500G 1500流明WXGA(1280×800)的HDMI/USB

我知道他們中的很多人會被錯誤捕獲。爲了避免一些錯誤,我在構建字符串字典忽略(如DDR4,xxGB等...)

我開始嘗試與this。我正在用大寫字母和/或數字來獲取單詞。如何用BOTH(大寫字母和數字)和特殊字符(如果它們在那裏就可以,但它們不是必需的)獲得單詞。


這是我第一個解決問題的方法。當然,另一個使用或不使用正則表達式的解決方案將非常受歡迎。

+0

如果你允許每個角色的乾草堆裏的一切都會匹配。在這段文字中我沒有解釋的模式。 (你可以爲你的角色類添加更多的角色,儘管你獲得的角色越寬,你會遇到的角色越多,你添加的角色越多)。 – chris85

回答

1

也許嘗試匹配包含至少一個大寫字母和一個數字的塊? 因此,這樣的事情確保中間至少有一個大寫和一個數字。您需要使用'或'來使其以另一種方式工作。

.+ ([A-Z1-9]*[A-Z]+[0-9]+[A-Z1-9]*) .+ 
+1

根據你的回答,我正在嘗試這個(https://regex101.com/r/1Ra5U5/3) – Nizam