Помогите составить рег выражение

dimm_mds

Новичок
Всем привет!
Завис я уже...
Собственно, есть строка, например 56-323-5656-235-56-2135-56
Нужно заменить все вхождения 56, и его правый -, если он есть, как отдельного числа, т.е. в результате получить:
323-5656-235-2135-

Спасибо!
 
PHP:
$str = '56-323-5656-235-56-2135-56';
var_dump(preg_replace('~56(-|$)~', '', $str));
 
Спасибо, что откликнулись, но!
В вариате zerkms получаем 323-56235-2135-, а не
323-5656-235-2135-,
т.е. удаляет лишнюю 56-, а должно удалять непосредственно 56 и разделитель, т.е. нужно указать, что начинаться должно с пустоты(начало строки) или разделителя(-)далее само число, за которым может быть разделитель(-) или конец строки и все!
что-то вроде ~(^|-)56(-|$)~
Так отрабатывает нормально, только удаляется лишний разделитель, выходит: 323-5656-2352135...помогите чуток поправить, т.е. что-бы не заменяло разделитель слева, но он был условием для начала!
 
Сорри, не правильно выразился. Короче идея такая:
Есть строка 56-323-5656-235-56-2135-56, в ней числа(id) разбиты разделителем "-".
Задача, убрать в этой строке id=56
Строку для примера я прописал специально, с разным вхождениям числа 56,так что-бы исключить глюк, что убирая id=56, я могу и другие id с вхождением 56 подкоцать(как, например, 5656).
Да, строка может быть просто 56, так вот этот 56 тоже должно убирать!
 
если это список id,то почему повторяются id
лучше задачу опиши
 
Задачу я описал выше. А id повторяться не будут! Эту строку я составил для того, что-бы проверить насколько правильно работает рег выражение. В строке просто могут быть, как я и писал, например, 56-123-5656, может быть 56-321-1256, может быть 321-56-5656 и т.д....т.е. если рег правильно отработает в строке что я предоставил изначально(убиреть конкретно id=56), то можно быть уверенным, что глюка не произойдет!
 
Можно и без регулярок тогда:
PHP:
implode( '-', array_diff( explode( '-', $in ), array( 56 ) ) );
 
:) верю, можно...но по скорости работы, думаю, рег быстрее отработает, чем разбирать-собирать массив....
 
Сверху