我需要一個正則表達式,給定一個配料行,會告訴我該配料的數量。下面是一些示例值:幫助正則表達式
- 8盎司半甜巧克力
- 6雞蛋
- 3/4杯糖
- 1湯匙濃咖啡粉末
- 1/2杯荷蘭加工烘烤可可
- 1/4杯不加糖可可
- 1/2杯糖果糖
- 2杯濃奶油
- 2至4乾燥扇貝(可選)
- 1 1/2杯胡蘿蔔
- 覆盆子和杏保留
每當量存在(全部除了最後的實施例),它需要得到數量。因此,對於第一個例子「8盎司半甜巧克力」,它需要返回「8盎司」。
如何使用PHP正則表達式執行此操作?
我需要一個正則表達式,給定一個配料行,會告訴我該配料的數量。下面是一些示例值:幫助正則表達式
每當量存在(全部除了最後的實施例),它需要得到數量。因此,對於第一個例子「8盎司半甜巧克力」,它需要返回「8盎司」。
如何使用PHP正則表達式執行此操作?
對於你的例子(和其他幾個人,我能想到的),
^[ \d/.-]*(?:to\s+[ \d/.-]*)?(?:ounces?|cups?|(?:table|tea)spoons?)?
會工作。
如果你想避免捕獲尾隨空格(因爲這個正則表達式會在一個數字之後沒有跟着一個單位),那麼把(?=\s)
加到正則表達式的末尾。
這會錯過6個蛋嗎? – polyhedron 2010-10-24 12:49:40
@多面體:不,爲什麼要這樣?這些單位是可選的。 – 2010-10-24 12:59:30
所以你會保持一個可能的數量單位清單,是否正確?你需要什麼樣的語言/正則表達風格?如果你問我,使用正常的編程/腳本語言,遍歷每種成分,分解它,並將第一個和第二個成員與已知單元列表進行比較會更容易。這不是真的正則表達式領域 – 2010-10-24 12:21:16
表達式應該如何處理「**糖的3/4杯**」? – 2010-10-24 12:22:20
是的,我將列出可能的單位。我正在使用PHP。 '的'應該被刪除。謝謝。 – moteutsch 2010-10-24 12:36:12