gpt4 book ai didi

php - 匹配数量和单位的正则表达式

转载 作者:行者123 更新时间:2023-11-30 07:11:33 28 4
gpt4 key购买 nike

我需要像这样从字符串中提取数量和单位

1 tbsp
1tbsp
300ml
300 ml
10grams
10 g

数量总是数字,然后可能有也可能没有空格,然后是单位。它们可能是 15 - 20 个不同的单元,这些单元可以来 self 们定义的列表(可能是数组)

解决方案可以使用 javascript 或 PHP,因为我需要在将它们存储到数据库之前将它们拆分。即它们需要单独存储。

谢谢

编辑:很抱歉要清楚。每一个新行代表一个新字符串。那就是字符串只包含 10g 或 300ml - 所以我们只需要一次拆分一个单位和一个数量。

最佳答案

正则表达式:

/(\d+)\s*(\D+)/

代码:

preg_match_all('/(\d+)\s*(\D+)/', $ingredients, $m);

$quantities = $m[1];
$units = array_map('trim', $m[2]);

$quantities$units 是:

Array
(
[0] => 1
[1] => 1
[2] => 300
[3] => 300
[4] => 10
[5] => 10
)
Array
(
[0] => tbsp
[1] => tbsp
[2] => ml
[3] => ml
[4] => grams
[5] => g
)

参见:http://ideone.com/MSH8t

如果您使用它,则不必准备好单位列表。但这是假设您的单位上没有数字字符,并且您的数量只是数字。

关于php - 匹配数量和单位的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430892/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com