我有一个产品描述列表。例如:

 items = ['avuhovi Grillikaapeli 320g','Savuhovi Kisamakkara 320g',
'Savuhovi Raivo 250g', 'AitoMaku str.garl.sal.dres.330ml', 'Rydbergs
 225ml Hollandaise sauce']

我想提取重量,即 320g、320g、250ml、330ml。我知道我们可以为此使用正则表达式,但不知道如何构建正则表达式来提取它。你可以看到权重有时在描述的中间,有时用点(.)作为分隔符而不是空格。所以,我很困惑如何提取。

提前感谢您的帮助:)

最佳答案

这是一种可行的解决方案(使用 Wiktor 建议的 searchgroup):

>>> for t in items :
...   re.search(r'([0-9]+(g|ml))', t).group(1)
...
'320g'
'320g'
'250g'
'330ml'
'225ml'

确实,更好的解决方案(感谢 Wiktor)是测试是否匹配:
>>> res = []
>>> for t in items :
...   m = re.search(r'(\d+(g|ml))', t)
...   if m:
...     res.append(m.group(1))

print res

关于python - 使用python中的正则表达式从其描述中提取项目的权重,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40016431/

10-11 05:26