帮助正则表达式

时间:2010-10-24 12:19:26

标签: php regex

我需要一个正则表达式,给定一个成分线,它会告诉我该成分的数量。以下是一些示例值:

  • 8盎司半甜巧克力
  • 6个鸡蛋
  • 3/4杯糖
  • 1汤匙浓缩咖啡粉
  • 1/2杯荷兰加工烘焙可可
  • 1/4杯不加糖的可可
  • 1/2杯糖果制造商的糖
  • 2杯浓奶油
  • 2至4个扇贝干(可选)
  • 1 1/2杯胡萝卜
  • 覆盆子和杏子保留

每当存在数量时(除最后一个以外的所有示例),都需要获取数量。因此,对于第一个例子“8盎司半甜巧克力”,它需要返回“8盎司”。

如何使用PHP正则表达式执行此操作?

1 个答案:

答案 0 :(得分:2)

对于你的例子(以及我能想到的其他一些例子),

^[ \d/.-]*(?:to\s+[ \d/.-]*)?(?:ounces?|cups?|(?:table|tea)spoons?)?

会起作用。

如果你想避免捕获一个尾随空格(因为这个正则表达式会在一个单元后面没有一个数字后执行),所以将(?=\s)添加到正则表达式的末尾。