matthiasklein88
Goto Top

PHP Befehl preg match all

Schönen guten Morgen!

Ich stoße derzeitig auf einem Problem bei dem Befehl "preg_match_all".

Mein Ziel ist alle 11 in einem String zu erkennen, wo vor und hinter der 11 keine 1 steht.

Beispiel habe ich den String:

1145111311511411115611

In diesem String sollen nun exakt 4x 11Paare ausgegeben.

Mit meinem Code:

<?php

$muster = "/\A11[^1]|[^1]11[^1]|[^1]11\Z/";  
$string = 1145111311511411115611;

echo preg_match_all($muster, $string, $erg);
?>
Erhalte ich nun nur das Ergebnis 3. Da in dem Block (3115114) nur die erste 11 erkannt wird.

Könnt ihr mir da bitte weiterhelfen?

Vielen Dank!
Matthias

Content-Key: 281870

Url: https://administrator.de/contentid/281870

Printed on: April 25, 2024 at 09:04 o'clock

Mitglied: 114757
Solution 114757 Sep 03, 2015 updated at 12:22:42 (UTC)
Goto Top
Moin,
$string = '1145111311511411115611';  
preg_match_all('/(.?)11(.?)/i',$string,$result);  
$cnt = 0;
for($i = 0; $i < count($result[1]);$i++){
	if(($result[1][$i] != "1") && ($result[2][$i] != "1")){$cnt++;}  
}
echo "Anzahl: $cnt";  
Gruß jodel32
Member: MatthiasKlein88
MatthiasKlein88 Sep 03, 2015 at 12:22:59 (UTC)
Goto Top
Klasse, ich danke!!

Gruß
Matthias