2015-04-06 2 views
1

У меня есть следующий кодКак мне получить preg_match, чтобы показать первый экземпляр?

$atk="[2] Skedaddle (20) Shuffle Aipom and all basic Energy cards attached to it into your deck. (Discard all other cards attached to Aipom.) (If you have no Benched Pokemon, this attack does nothing.)"; 

    preg_match('#\[(.*)\] (.*) \((.*)\) (.*)#', $atk2, $matchatk2); 
    $atkcost = $matchatk2[1]; 
    $atkname = $matchatk2[2]; 
    $atkdmg = $matchatk2[3]; 
    $atktext = $matchatk2[4]; 

Это его возвращения следующее:

2 
Skedaddle (20) Shuffle Aipom and all basic Energy cards attached to it into your deck. 
Discard all other cards attached to Aipom. 
(If you have no Benched Pokemon, this attack does nothing.) 

Мне нужно, чтобы вернуться:

2 
Skedaddle 
20 
Shuffle Aipom and all basic Energy cards attached to it into your deck. (Discard all other cards attached to Aipom.)(If you have no Benched Pokemon, this attack does nothing.) 

Я попытался perg_match_all, но он вернулся и те же результаты ,

Я рассмотрел весь вопрос для ответа на мой вопрос и не смог найти ответ, который касался его.

Заранее спасибо.

+0

Если мой ответ помог вам, пожалуйста, рассмотреть вопрос о принятии его в качестве правильного ответа. ТКС. –

ответ

0

Вам нужен не жадный regex quantifier ?.

Как это:

$atk="[2] Skedaddle (20) Shuffle Aipom and all basic Energy cards attached to it into your deck. (Discard all other cards attached to Aipom.) (If you have no Benched Pokemon, this attack does nothing.)"; 

    preg_match('#\[(.*?)\] (.*?) \((.*?)\) (.*)#', $atk, $matchatk2); 
    $atkcost = $matchatk2[1]; 
    $atkname = $matchatk2[2]; 
    $atkdmg = $matchatk2[3]; 
    $atktext = $matchatk2[4]; 

DEMO: http://ideone.com/36DRLa

Mastering Quantifiers

+0

Вот и все! Почему руководство по php не понятно; Я читал это и думал не то, что мне нужно. –

+0

Я использую это программное обеспечение для проверки синтаксиса и результатов регулярного выражения перед использованием с php. http://www.regexbuddy.com/ –

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