字符串中最接近特定短语的数字

时间:2014-02-20 13:03:01

标签: php regex string

我有这样一个字符串:

$string = "Serving Time: 5mins
Cooking time 10 mins
Servings 4
Author: Somebody

Directions

1...
2..."

我希望获得烹饪时间的输出,这意味着最接近的短语数字:“烹饪时间”,我也希望得到关键数字“服务”

因此输出

$serves = some_kind_of_function($string);
$serves == 4; //true

$cookingtime = some_kind_of_function($string);
$cookingtime == 10 //true

获得它的最佳方式是什么?

谢谢!
亚当

2 个答案:

答案 0 :(得分:2)

您可以像这样使用此搜索:

function findNum ( $str, $search ) {
   if ( preg_match("/" . preg_quote($search, '/') . "\D*\K\d+/i", $str, $m) )
      return $m[0];
   return false;
}

$str = "Serving Time: 5mins
Cooking time 10 mins
Servings 4
Author: Somebody

Directions

1...
2...";

findNum( $str, "Cooking" ); // 10
findNum( $str, "Servings" ); // 4

答案 1 :(得分:1)

您可以通过array之间的space替换,(comma)来将其转换为$array = explode(' ', $string); 通过使用此功能

$count = count($array);
for($i=0;$i<$count;$i++)
{
  if($array[$i]=='servings')
  {
    $serves = $array[$i+1]
  }
  if($array[$i]=='time')
  {
    $cookingtime= $array[$i+1]
  }
}

echo $serves;
echo $cookingtime." Minutes";

现在

{{1}}

如果您有任何问题,请告诉我。