python - 正则表达式 - 根据匹配字符串提取完整的单词库
问题描述
有人可以帮我解决这个问题吗?在这里,我正在尝试从给定的句子中提取单词,其中包含 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)
解决方案
尝试使用这个正则表达式:
\d+\s*(G|KG|GM|L|ML|PCS)\s?
它匹配每个以至少一位数字开头的字符串,然后是一个单位。在数字和单位之间以及单位后面也可以有空格。
像你想要的那样调整它:)
推荐阅读
- python - Matplotlib transData.transform,ValueError:对象太深,无法应用到日期时所需的数组
- email - 在容器中为您的应用设置 SMTP 服务器
- typescript - 如何通过接口初始化对象?
- python - TypeError:必须是实数,而不是 str
- css - Oracle Apex:隐藏交互式报表控制面板
- python - 谷歌 Colab 没有使用其 GPU
- algorithm - 找出在给定限制下可以从商店收集的最大重量
- date - Java 8 LocalDateTime 有不同的结果
- python - 将两个 MapReduce 作业的结果连接在一起
- ansible - 使用 awk 和 ansible 来运行命令