使用标题中的preg_match_all

时间:2017-05-18 08:34:59

标签: php preg-match-all

我需要从帖子标题字符串中提取,如:

12毫升 12毫升 123毫升 123毫升 12.3毫升 12.3毫升

现在我正在使用:

preg_match_all("/[0-9]+\sml/i", $post->post_title, $percentage);             
if(isset($percentage[0][0]) && $percentage[0][0] != "" ){    
    $text = $percentage[0][0]." "; 
}
echo $text;

但是不知道如何为点分隔数字设置它。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$str = "abc 12ml def 12 ml xyz 123ml tuv 123 ml jhsfg 12.3ml qjsdfkjfhg 12.3 ml";
if (preg_match_all("/\d+(?:\.\d+)?\s*ml/i", $str, $percentage)) {
    print_r($percentage);
}

<强>输出:

Array
(
    [0] => Array
        (
            [0] => 12ml
            [1] => 12 ml
            [2] => 123ml
            [3] => 123 ml
            [4] => 12.3ml
            [5] => 12.3 ml
        )

)

<强>解释

/           : regex delimiter
  \d+       : 1 or more digits
  (?:       : start non capture group
    \.      : a dot
    \d+     : 1 or more digits
  )?        : end group, optional
  \s*       : 0 or more spaces
  ml        : literally ml
/i          : regex delimiter, flag case insensitive