我正在尝试从通过 Kaggle 找到的 OpenFoodFacts 数据集中解析出一列数据。有一个名为“serving_size”的属性,它包含包装上显示的食品的任何份量信息。大多数情况下,份量以克 (g) 表示,但通常也有其他文本。我希望能够搜索字符串,找到与克数对应的数字,并将该值提取到自己的字段中。该值不仅仅是一个整数 - 它可能有一个小数。
我是正则表达式的新手,但似乎应该可以搜索“g”字符,并且如果它是由任何数值进行的以提取它们。我发现一些食谱表明这是可能的,但到目前为止,我尝试过的任何方法都没有奏效。在 OpenRefine 文档中,他们给出了使用此正则表达式提取十进制数据的示例:/[-+]?[0-9]+(.[0-9]+)?/,但我无法得到任何变化在我们的场景中工作。我也试过像“value.match(/(.)?(/ d+[g]). ?/)”这样的命令。我发现我不明白正则表达式应该如何工作 - 当我告诉它“/d”时,我希望它只会给我返回数值,
任何帮助,将不胜感激。
以下是数据中的一些示例文本字符串:
serving_size
- 113.5g
- 20g
- 1 cup (227g)
- 4 cookies (15g)
- 13 pieces (39g)
- 1/4 packet (21g) makes 1/2 cup
- 0.75 oz (21g)
- 1 can (12 FL OZ) 355g
- 15.2 fl oz (450g)
- 1 can (355mL)
- 1/4 tsp (1.4g)
- 10 fl oz 1 bottle.
- 20 fl oz
- 1 envelope (21g)
- 1 tbsp (4.5g)
- 45.2g
- 1/2 pack 142.5gms
- 1 carré de chocolat de 20g
- 4 biscottes (≈ 35g) Ce paquet contient 8.5 portions de 4
biscottes.
- 0.33L
- 2galettes 10.5g
- 0.041649313g
- 1 package (79g)