2015-10-30 4 views
-6

У меня есть строка, как:заменить строку, содержащуюся между двумя символами

www.mydomain.com/product/$ID_PRODUCT$/ID_$ID_PRODUCT$ 

что мне нужно заменить строки, содержащиеся между «$» и «$», также удаление Струны разделители (что «$») получение что-то вроде:

www.mydomain.com/product/1234/ID_1234 

Спасибо,

EDIT: Попытка

$new_string = preg_replace('/(\$)(.*)(\$)/s', product->id, $string); 

Но он не обрабатывает второе выражение ...

Демо @stribizhev, приведены в комментариях ниже, работал для меня!

+1

Это может оказаться довольно основную задачу, пытались ли вы что-нибудь? Если вам просто нужно заменить '$' + 'not $ (1 или больше)' + '$' одним значением, это действительно просто. –

+0

Да, я пробовал это: http://stackoverflow.com/questions/6875913/simple-how-to-replace-all-between-with-php ok, помогите мне спать –

+1

В принятом ответе есть «неправильное» регулярное выражение , Но вам нужен отрицательный класс персонажа, правда. –

ответ

1

Это похоже на работу:

<?php 
$a = 'www.mydomain.com/product/$ID_PRODUCT$/ID_$ID_PRODUCT$'; 
echo preg_replace('/[$][a-zA-Z_]+[$]/',"1234",$a); 

Demo

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