2017-10-10 5 views
0

製品モデルのリストから製品モデルを取得しようとしています。正規表現モデルを製品リストから検索する

タイトルからモデルを検索することは難しいので、大文字と数字の部分文字列を取得することから始めました(特殊文字も含むことができますが、必ずしも必要ではありません)。

いくつかの例は次のようになります。

  • AppleのiPhone 8プラス64ギガバイトテラ網膜5.5" 12MP/7MP iOSの11 - プラータ
  • スマートテレビQLED・デ・55" サムスンQN55Q7FAMPコムHDMI/USB /のWi -Fi Bivolt
  • スマートテレビQLED・デ・65" サムスンQN55Q7FAMPコムHDMI/USB /のWi-Fi Bivolt
  • MEMORIA DDR4 CRUCIAL 16ギガバイト/ 2400 CRUCIAL BLS16G4D240FSE BALLISTIX S
  • MEMORIA DDR4 CRUCIAL 16ギガバイト/ 2400/2400 CRUCIAL CT16G4DFD824A(SINブリスター
  • CRUCIAL BLS16G4D240FSB BALLISTIX S
  • MEMORIA DDR4 CRUCIAL 16ギガバイト/ 2400 CRUCIAL BLS16G4D240FSC BALLISTIX S
  • MEMORIA DDR4 CRUCIAL 16ギガバイト
  • Projetor LG MiniBeam PW1500G 1500ルーメンWXGA(1280×800)HDMI/USB

私はそれらの多くが間違いで捕らえられることを知っています。いくつかのエラーを避けるために、私は無視する文字列の辞書を構築することを考えています(DDR4、xxGBなど...)

私はthisで試し始めました。私は大文字のAND/ORの数字で単語を取得しています。ボトム(大文字と数字)と特殊文字を使用して単語を取得するにはどうすればいいですか(大丈夫ですが、必要ではありません)。


この問題を解決するための私の最初のアプローチでした。もちろん、正規表現を使用していない、または使用していない別のソリューションは大歓迎です。

+0

すべての文字を許可すると、干し草の中のすべてが一致します。この文章で解読できるパターンはありません。 (あなたはあなたのキャラクタークラスにもっと多くのキャラクターを加えることができます。 – chris85

答えて

1

少なくとも1つの大文字と1つの数字を含むブロックを一致させようとしますか? このようにすれば、中央に少なくとも1つの資本と1つの番号が存在することが保証されます。あなたはそれを他の方法でも動作させるために 'または'を使う必要があります。

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

あなたの答えに基づいて私はこれを試しています(https://regex101.com/r/1Ra5U5/3) – Nizam