Я думал, что это сработает, но, похоже, оно удаляет только пробелы и пробелы после него.Удалите все символы после «-»
$itemList[] = preg_replace('/-(.*?)/i', "", $temp['item']);
Я думал, что это сработает, но, похоже, оно удаляет только пробелы и пробелы после него.Удалите все символы после «-»
$itemList[] = preg_replace('/-(.*?)/i', "", $temp['item']);
Try:
$itemList[] = preg_replace('/-(.*)$/i', "", $temp['item']);
Символ $ совпадает с концом входа, поэтому заставляет * захватить до конца..
Добавление a? после того, как * делает его неживым, что означает, что он получит минимально возможное, а не максимально возможное, поэтому в этом случае это именно то, чего вы не хотите.
Почему вы используете неживые *?
?
$itemList[] = preg_replace('/-.*/i', "", $temp['item']);
Кроме того, захватные парнеры не нужны.
На самом деле удаление '?' Должно быть достаточно. '. *' будет жадным и соответствовать как можно больше. Однако работает в любом случае. – Kobi