首页 > 解决方案 > 正则表达式 - 根据匹配字符串提取完整的单词库

问题描述

有人可以帮我解决这个问题吗?在这里,我正在尝试从给定的句子中提取单词,其中包含 G、ML、KG、L、ML、PCS 以及数字。我可以匹配字符串,但不确定如何提取完整的单词

例如我的输入是“This packet contains 250G Dates”,输出应该是 250G 另一个例子是“You pay for 2KG Apples”,输出应该是 2KG

在我的正则表达式中,我得到的只是匹配字符串而不是完整的单词:(

import re
val = 'FUJI ALUMN FOIL CAKE, 240G, CHCLTE'
key_vals = ['G','GM','KG','L','ML','PCS']
re.findall("\d+\.?\d*(\s|G|KG|GM|L|ML|PCS)\s?", val)

标签: pythonregex

解决方案


尝试使用这个正则表达式:

\d+\s*(G|KG|GM|L|ML|PCS)\s?

它匹配每个以至少一位数字开头的字符串,然后是一个单位。在数字和单位之间以及单位后面也可以有空格。

像你想要的那样调整它:)


推荐阅读