2009-11-18 8 views

ответ

4

Try:

$itemList[] = preg_replace('/-(.*)$/i', "", $temp['item']); 

Символ $ совпадает с концом входа, поэтому заставляет * захватить до конца..

Добавление a? после того, как * делает его неживым, что означает, что он получит минимально возможное, а не максимально возможное, поэтому в этом случае это именно то, чего вы не хотите.

+2

На самом деле удаление '?' Должно быть достаточно. '. *' будет жадным и соответствовать как можно больше. Однако работает в любом случае. – Kobi

2

Почему вы используете неживые *??

$itemList[] = preg_replace('/-.*/i', "", $temp['item']); 

Кроме того, захватные парнеры не нужны.

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