使用列表中的条目搜索字符串以获得精确匹配

2024-05-15 06:11:56 发布

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

想知道是否有人能解释一下这个问题。我正在尝试搜索一个标题,并从标题中提取步枪/猎枪/任何东西的口径-在一些帮助下,它已经成熟到了这一步

标题如下,例如:

Investarm 410规格100L

然而,当我使用


if calibre in gun_calibre:

其产量为:10加仑

因为在我的口径列表中,显然有10号和410号

有谁知道我如何在口径上搜索这个字符串,而不是基本上执行包含搜索(情感上)

最后一个想法是,按长度排序可以纠正这个问题,但不幸的是,它没有

'''

fa_calibre = soup.select_one('h1[itemprop="name"]')
gun_calibre = fa_calibre.text if fa_calibre else ''

calibres = ['4 Gauge', '4 gauge', '4G', '4 G', '6 Gauge', '6 gauge', '6G', '6 G', '8 Gauge', '8 gauge', '8G', '8 G', '10 Gauge', '10 gauge', '10G', '10 G', '12 Gauge', '12 gauge', '12G', '12 G', '14 Gauge', '14  gauge', '14G', '14 G', '16 Gauge', '16  gauge', '16G', '16 G', '20 Gauge', '20 gauge', '20G', '20 G', '28 Gauge', '28  gauge', '28G', '28 G', '410 Gauge', '410  gauge', '410G', '410 G', '.17 HMR', '.17hmr', '.17 hmr', '.22 LR', '.22lr', '.22 lr', '.22 WMR' '.22WMR', '.22 wmr', '.22wmr', '.17 Hornet', '.17Hornet', '.17 HORNET', '.17HORNET', '.17 MACH II', '.17 MACH 2', '.17MACH II', '.17MACH 2', '.17 Mach II', '.17 Mach 2', '.17mach II' '.17 REM', '.17 REM Fireball', '.17 WSM', '.204 Ruger', '.22 Hornet', '.22 Magnum', '.22 Short', '.22-250', '.220 Swift', '.222', '.223', '.243', '.25-06', '.257 Weatherby Magnum', '.260 REM', '.270', '.270 WSM', '.275', '.30-06', '.30-30', '.300 ACC Blackout', '.300 Ultra Mag', '.300 Win Mag', '.300 WSM', '.303', '.308', '.338 Blaser Magnum', '.338 Lap Mag', '.338 Win Mag', '.357 Magnum', '.375 H&H Mag', '.38 / .357 Magnum', '.40-09', '.408 Cheytac', '.416 REM Mag', '.416 Rigby', '.44 Magnum', '.44-40', '.444', 'Multiple in Stock', '.45 Long Colt', '.45-60', '.45-70', '.45-90', '.45-120', '.45-70 Govt.', '.450', '.458 Win Mag', '.470 Nitro Express', '.50 BMG', '.577', '6.5mm Grendel', '6.5mm Creedmore', '6.5x284', '6.5x47 Lapua', '6.5x54', '6.5x55', '6mm BR', '7.5x55', '7.62', '7.62x39', '7.62x51', '7.62x54R', '7.92', '7mm REM MAG', '7mm-08', '7x57', '7x64', '8.5x63', '8mm REM MAG', '8x57', '8x68', '9.3x62', '9.3x74R', 'Multiple Calibre', '9mm RF', '12 G & 20 G', '20 G & 28 G', '20 G & 28 G & 410 G', '28G & 410 G', '.177', '.177 (BB)', '.20', '.22', '.25', '.30', '4.5mm', '6mm (BB)', '.177', '.177 (BB)', '.20', '.22', '.25', '.30', '6mm', '.32', '.32 ACP', '.32 AUTO', '.357', '.357 MAGNUM', '.38 SPECIAL', '.38 SUPER AUTO', '.38 AUTO', '.40', '.44', '.44 MAGNUM', '.45', '.45 ACP', '9MM', '1in', '9MM RF', '.22 SHOT', '.22 GAUGE', '28G & 410G', '12G & 20G', '16G & 8X57', '12G & 20G', '20G & 28G', '20G & 28G & 410G', 'FLARE', '.357', '.22 MAGNUM']

for calibre in calibres:
   if re.search(calibre, gun_calibre):
      gun_calibre = calibre
   else:
      gun_calibre = calibre

array = [guntrader_id, gun_title, gun_makes, gun_models, gun_calibre, gun_licences, gun_orients, gun_barrels, gun_barrels_fractions, gun_stocks_whole, gun_stocks_fractions, gun_choke1, gun_choke2, gun_origins, gun_triggers, gun_ejections, gun_scopes, gun_serials, gun_stocknos, gun_conditions, gun_description, gun_price]

print(array)

'''


Tags: in标题ifwinfaiigaugerem

热门问题