我有不同的产品标题,我想从中提取产品数量,例如:
title = "Prażynki Roasty Ribs Lorenz, 45 g BBQ Hot&Spicy"
title = "Precelki Chrupkie Paluszki słone ; 49 + Chrupiące kulki gratis Lajkonik, 130-200 g"
我可以通过title.split("")将其转换为列表。什么是提取金额的简单方法(即" 45 g"在第一个例子中," 130-200 g"在第二个例子中)并立即将其从标题中删除?我的意思是一种方法足够灵活,能够处理位于标题不同位置的金额(中间一次,最后一次等)。
结果如下:
name = "Prażynki Roasty Ribs Lorenz, BBQ Hot&Spicy"
amount = "45 g"
name = "Precelki Chrupkie Paluszki słone ; 49 + Chrupiące kulki gratis Lajkonik"
amount = "130-200 g"
答案 0 :(得分:0)
您可以使用正则表达式:
re.search(r"\b(\d+(?:\-\d+)?) g\b", title)
答案 1 :(得分:0)
您可以找到'克'单位的索引,然后使用它。紧接在单元之前的单词是金额的一部分(忽略错误检查,如果输入字符串中没有g
,或者如果它是输入字符串中的第一个单词,您应该决定该怎么做,或者如果有多个g
)。
def f(s):
words = s.split()
unitIdx = words.index('g')
name = words[:unitIdx - 1] + words[unitIdx + 1:]
amount = words[unitIdx - 1] + ' ' + words[unitIdx]
return ' '.join(name), amount
# Prints ('Prazynki Roasty Ribs Lorenz, BBQ Hot&Spicy', '45 g')
print f("Prazynki Roasty Ribs Lorenz, 45 g BBQ Hot&Spicy")
# Prints ('Precelki Chrupkie Paluszki stone ; 49 + Chrupiqce kulki gratis Lajkonik,', '130-200 g')
print f("Precelki Chrupkie Paluszki stone ; 49 + Chrupiqce kulki gratis Lajkonik, 130-200 g")