2017-05-18 1 views
0

ich wie aus Post-Titel-Strings extrahieren müssen:Mit preg_match_all von Titel

12ml 12 ml 123ml 123 ml 12,3 ml 12,3 ml

Jetzt im mit:

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; 

Aber weiß nicht, wie man es für Punkt-getrennte Zahlen setzt.

+0

Sie nur 12,3 ml 12,3 ml Dezimalzahl müssen, ist es? – JYoThI

Antwort

0

könnten Sie tun:

$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); 
} 

Ausgang:

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

) 

Erläuterung:

/   : 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 
+0

@Pau: Fühlen Sie sich frei, die Antwort als akzeptiert zu markieren, siehe: http://StackOverflow.com/Help/Someone-answers – Toto