Группировка в регулярном выражении

Pegiy

Guest
Группировка в регулярном выражении

есть такой
class=text><br><b><u> CD MP3 РМЕЕТ LG PCD-M600 </u>
и такой текст
class=text><br><a href=show_good.php?idtov=11142&grid=2386 class=menu> <b><u>CD MP3 РМЕЕТ iRiver IMP-550</b></u></a>
необходимо вырезать названия моделей

такое выражение работает
preg_match_all("/class=text><br>(<a href=show_good.*?>\s)?<b><u>([^<]+)</i", $screen, $models);
но названия попадают в $models[2], а надо что в $models[1]

можно ли группировать не символами "()" ?
 

Pegiy

Guest
так уж повелось, что везде используется $models[1]
поэтому сейчас я сделал так
preg_match_all("/class=text><br>(<a href=show_good.*?>\s)?<b><u>([^<]+)</i", $screen, $tmp_models);
$models[1] = $tmp_models[2];

и задался вопросом можно ли это сделать по другому
 

Altex

Новичок
preg_match_all("/class=text><br>(?:<a href=show_good.*?>\s)?<b><u>([^<]+)</i", $screen, $models);
 

Demiurg

Guest
>$models[1] = $tmp_models[2];
так и делай, хотя я не понимаю, откуда такие ограничения.
 

Altex

Новичок
чем моя функция не подходит? если учесть что она к томуже и быстрее вполняется.
 

Demiurg

Guest
гоша, хотя бы потому, что эти выражения делают разные вещи.
 

Falc

Новичок
Demiurg
Что-то мне подсказывает что автора устроит вариант гоши :)
Хотя они и разные.
 

Falc

Новичок
Demiurg
Так гоша и спросил, а я не спрашивал, а просто высказал свою точку зрения.
 
Сверху