2016-05-15 9 views
1

Ich muss alle Instanzen erfassen, die das Muster in einer Zeichenfolge entspricht.Erfassen Sie jede Instanz eines Musters in einer Zeichenfolge mit Regex und PHP

Zum Beispiel das Muster zu entsprechen ist

MM/YYYY

und der String

03/201408/201511/201203/201408/201511/201203/201408/201511/2012

Derzeit habe ich diese Regex Muster

(0[1-9]|1[0-2])/[0-9]{4} 

aber es stimmt nicht alle Daten mit MM/YYYY-Format überein.

+1

[Es sieht funktioniert] (https://regex101.com/r/xD7oF2/1). Siehe auch [diese Demo] (http://ideone.com/6pTeXH). Bitte geben Sie an, welche Schwierigkeiten Sie damit haben. –

+0

wie @ WiktorStribiżew sagte, es funktioniert, was ist der Code, den Sie verwenden? –

+0

Was ist die PHP-Nutzung? Wenn Sie '/' als Trennzeichen haben, das scheitert .. – chris85

Antwort

1

Es scheint, dass das Problem mit der Regex-Verwendung in PHP ist.

Hier ist, wie man diesen Teil bekommen:

$re = '~(?:0[1-9]|1[0-2])/[0-9]{4}~'; 
$str = "03/201408/201511/201203/201408/201511/201203/201408/201511/2012"; 
preg_match_all($re, $str, $matches); 
print_r($matches[0]); 

Siehe PHP demo

Ich schlage vor, nur eine nicht-einfangende Gruppe, um mit nicht die Ergebnissen mit unnötigen Werten Krempel.

Verwandte Themen