1

成分リストから量と成分を取得するように求められました. リストから数量と成分を正常に抽出しましたが、¼、½ などの半分の文字が発生する場所で立ち往生しています。それらは 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)
4

1 に答える 1

0

Unicode コード ポイントを正規表現に組み込みます。一見、適切なコードポイント[\x{00BC}-\x{00BE}\x{2153}-\x{215E}]u

于 2013-01-15T00:53:40.800 に答える