Хэлп с регуляркой

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Код:
$string = '1::5::4::3::2::15::11::16::91::102::547::984';
$ch = 1;
Нужно как-то вырезать число $ch из строки $string и при этом сохранить соответствие шаблону.
Допустим, вырезать надо число $ch = 1, то на выходе должно получится:
Код:
$string = '5::4::3::2::15::11::16::91::102::547::984';
Вырезать надо именно единицу, заключенную в :: с обеих сторон, а не все единички. Всё-таки 1 это же не 15 и не 10.

Сделал сперва вот так:
Код:
$new_string = preg_replace("/::$ch::/","::", $string);
Но оно не вырезает числа, что находятся по краям строки. К тому же режет мне вообще всё единицы(если $ch = 1) из всех чисел, а мне надо именно ::1:: вырезать, а не ::11::
Как исправить?
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Код:
$new_string = preg_replace(array("/^$ch::|/>::$ch$/", "/::$ch::/"), array("", "::"), $string);
Блин, парсер добавляет какую-то хрень в регулярку. Вот короче http://codepad.org/3xeyoMVT
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
О, спасибо! То, что нужно!
 
Статус
Закрыто для дальнейших ответов.
Верх Низ