正则表达式以获取成分的数量和名称

时间:2013-01-15 00:42:45

标签: php regex

我被要求从成分清单中获取数量和成分。我已经成功地从列表中提取了数量和成分但是我遇到了一半字符出现的地方,例如¼,½等。它们没有用HTML编码,我的正则表达式在那里失败。

以下是成分列表

$subject = array("1 teaspoon salt",
"¼ teaspoon black pepper",
"1 cup all-purpose flour",
"1 ½ - 2 cups shredded Parmesan cheese");

正则表达式

 preg_replace ('/(([0-9][\s+]*[\-]*[0-9]*[\s+]*)(teaspoon|tablespoons|cup|cups)*)([a-z0-9\s]+)/','Quantity: $1 Name: $4',$food)

输出

 Quantity: 1 teaspoon Name: salt
 ¼ teaspoon black pepper (failed)
 Quantity: 1 cup Name: all-purpose flour
 Quantity: 1 Name: ½ - Quantity: 2 cup Name: s shredded Parmesan cheese (failed)

1 个答案:

答案 0 :(得分:0)

Unicode code points合并到正则表达式中。乍一看,看起来合适的代码点是[\x{00BC}-\x{00BE}\x{2153}-\x{215E}]您还必须使用u修饰符,才能在preg中启用unicode。