繁体   English   中英

如何在 python 中检查具有特定字符(如 10g)的数字

[英]How to check for a digit with a specific caracter like 10g in python

我需要用克(g)和%提取成分,问题是它无法检测到带有“g”的数字。 这是我的代码:

df['ingredient'] = df['ingredients_text'].apply(lambda x: [s for s in x if ('\d+\s*g' in s) or ('%' in s)])

这是成分文本的示例和成分的结果在此处输入图像描述

所需的成分 output 是:

[' jar 312g b ingrédiehb: eau', ' purée de )ingembre (1 b%)', ' tarnain (8%)', ' ail en 3%)']

您没有正确使用正则表达式,您实际上是在检查字符串 '\d+\s*g' 是否出现在成分列表中。

import re
exp = re.compile(r".*\d+\s*g.*")
df['ingredients_text'].apply(lambda x: [s for s in x if (re.match(exp, s) or ('%' in s))])

表达式r".*\d+\s*g.*"将匹配以下任何内容:

  • 任意数量的字符
  • 1 个或多个数字
  • 任何空间
  • 字母 g
  • 任意数量的字符。

有关如何使用正则表达式的更多信息,请参见此处: https://docs.python.org/3/library/re.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM