2014-02-21 2 views
0

я работаю над этим регулярным выражением:PCRE регулярное выражение и пространства

/\{(\w+)::(\w+)::([\sa-zA-Z0-9]+)\}/ 

Таким образом, с длинной строки, я мог бы получить образцы, как: Слово :: Слово :: Слово и слово, и слово

Я тестировал это регулярное выражение здесь: http://regex101.com/

И в PHP это должно работать нормально.

Но когда я ставлю в код, он не работает:

$pattern = '/\{(\w+)::(\w+)::([\sa-zA-Z]+)\}/'; 

echo preg_match_all(preg_match_all($pattern,'{WORD::WORD::PRUEB ASDF ASD}', $expr,PREG_PATTERN_ORDER)); 

эхо результат 0

+0

Почему вы вызываете эту функцию preg_match_all дважды. echo preg_match_all ($ pattern, '{WORD :: WORD :: PRUEB ASDF ASD}', $ expr, PREG_PATTERN_ORDER); – Surace

+0

echo 'preg_match_all (preg_match_all'? Вы повторяете количество совпадений числа совпадений? – CD001

+0

http://php.net/manual/en/function.preg-match-all.php –

ответ

0

Вы звоните preg_match_all внутри preg_match_all. Вместо этого:

$pattern = '/\{(\w+)::(\w+)::([\sa-zA-Z]+)\}/'; 
echo preg_match_all($pattern,'{WORD::WORD::PRUEB ASDF ASD}', $expr, PREG_PATTERN_ORDER); 
+0

Извините, скопируйте и вставьте слишком много когда я написал код :( – user3324528

+0

Так или иначе, в понедельник я скопирую полный код, потому что у меня было это без двух вызовов, и он не работает должным образом – user3324528

Смежные вопросы