2015-08-22 3 views
1

Сегодня я прочитал вопрос о переполнении стека, на здесь: https://stackoverflow.com/questions/32151810/how-to-parse-this-text-block-into-variables-by-phpКакая ошибка в моем собственном коде регулярных выражений PHP?

Я пытался сделать это с помощью этого кода:

preg_match("/([a-zA-Z_]+)/", "[first_text] = [second_text, third_text] : [forth_text, fifth_text]", $matches); 

Когда я тестировал его, он не работает правильно:

echo $matches[0]; 
echo $matches[1]; 
echo $matches[2]; 
echo $matches[3]; 
echo $matches[4]; 

Напечатает:

first_textfirst_text 

Какая ошибка в моем собственном коде регулярных выражений PHP?

ответ

3

Вы должны использовать:

preg_match_all('/([a-zA-Z_]+)/', "[first_text] = [second_text, third_text] : [forth_text, fifth_text]", $matches); 

preg_match_all вернет все матчи с помощью регулярных выражений, тогда как preg_match просто дает вам первый матч.

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