matthiasklein88

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 281870

Url: https://administrator.de/forum/php-befehl-preg-match-all-281870.html

Ausgedruckt am: 27.04.2025 um 01:04 Uhr

114757
Lösung 114757 03.09.2015 aktualisiert um 14:22:42 Uhr
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
MatthiasKlein88
MatthiasKlein88 03.09.2015 um 14:22:59 Uhr
Goto Top
Klasse, ich danke!!

Gruß
Matthias