2012-04-04 15 views
2

ich einen Textblock, wo ich yo Bits von Texten wie finden muß: {slider: 1} {Video-alt: 10}Regulärer Ausdruck Hilfe in PHP

Ich habe dieses Stück Code

$regex = '/{[ ]*(slider)|(slider-alt)|(video)[ ]*:[0-9]+[ ]*}/'; 
     $matches = array(); 
     preg_match_all($regex, $row->content, $matches); 

Aber das Array zurückgegeben wird, ist alles vermasselt ...

Array-Ausgang:

Array ([0] => {slider [1] => {slider [2] => video:2}) 
Array ([0] => slider [1] => slider [2] =>) 
Array ([0] => [1] => [2] =>) 
Array ([0] => [1] => [2] => video) 

Für den Eingang:

{slider:6} 
{slider-alt:2} 
{video:2} 

Irgendwelche Hilfe?

Antwort

2

Ihre Regexp ist chaotisch.

$regex = '/{ *(slider|slider-alt|video) *:\d+ *}/'; 
$matches = array(); 
preg_match_all($regex, $row->content, $matches); 
+0

Danke, aber das tut es immer noch ... Ich habe die anwser mit dem Ergebnis Ihrer Änderungen aktualisiert. – jribeiro

+0

Wo ist Ihre aktualisierte Antwort? 'var_dump ($ matches [0]);' gibt 'array (3) {[0] => string (10)" {slider: 6} "[1] => string (14)" {slider-alt: 2 } "[2] => string (9)" {video: 2} "}' – meze

+0

Entschuldigung, es ist jetzt da;) – jribeiro