У меня URLs так:Неожиданные результаты с preg_replace()
/catalog/kitchen-knives-and-accessories/?clear_cache=Y
Используя preg_replace()
Я хочу, чтобы сделать его выглядеть следующим образом:
section_code=kitchen-knives-and-accessories
маркированы все полужирный, которые я хочу от ввод в ожидаемый результат
Сейчас я пользуюсь:
#^/catalog/([^/]+)#
Как регулярное выражение, но это не дает ожидаемого результата, когда я использую его с preg_replace()
. См.: http://www.phpliveregex.com/p/dW1
Что мне нужно изменить в моем регулярном выражении, чтобы получить ожидаемый результат?
Посмотрите, что вы получаете в первом элементе массива. 0 всегда будет содержать полное совпадение. – Rizier123
Если вы перейдете по ссылке, которую я предоставил, вы увидите, что 'preg_match' отлично работает с этим регулярным выражением. В первом элементе массива я получаю '/ catalog/kitchen-knives-and-accessories' и на вторых« кухонных ножах и аксессуарах ». Это то что мне нужно. Но это не работает с 'preg_replace' –
Я не знаю, почему вы не используете' preg_match() 'then, но вы можете просто захватить всю строку и заменить ее первой группой захвата, например. 'preg_replace (" # ^/catalog /([^/]+).*# "," $ 1 ", $ str)' – Rizier123