Allright Я получил следующий rewritted URL examaples:PHP: preg_replace() тир ожидать даты
/Alfa-Romeo/Brera/06-2006-07-2008/2.4-JTDM-200-PK
Это только URL-бы хорошо, но, чтобы найти свои транспортные средства, которые мне нужно следующие значения Wich корреспондента моего база данных. Поэтому я использую этот код.
$value = preg_replace('/(?<!\d{4})-/', ' ', $value);
Она возвращает следующее и за косой чертой запишу ожидаемое значение
- Alfa Romeo/Альфа Ромео
- Brera/Brera
- 06 2006-07 2008/06 2006-07 2008
- 2,4 JTDM 200 ПК/2,4 JTDM 200 ПК
Im получая правильный результат, но когда я иду к следующему примеру, вот что происходит не так:
/Alfa-Romeo/Brera/07-2008-/1750-TB-200-PK
Возвращения/Ожидать
- Alfa Romeo/Альфа Ромео
- Brera/Brera 07 2008-
- /07 2008-
- 1750-ТБ 200 ПК/1750 TB 200 ПК
В результате логика, так как моя preg_replace заменяет любую тире пробелом, ожидая, когда будут четыре цифры, за которыми следует тире. Но в этом случае я не хочу, чтобы тире за «1750» см. Выше.
Поэтому мне нужно расширить этот preg_replace, чтобы он сохранял тире только для формата даты. Некоторые из форматов даты являются:
- 07 2005-08 2010
- 2012-2015
- 2012-
- 07 2005-2010
Как вы можете видеть, иногда после тире нет ничего, а иногда есть только год или год и месяц. Как я могу удалить тире за «1750», см. Жирный выше?
является тире всегда следует буква в случае '1750-TB', но не для форматов даты? –