2012-02-26 3 views
1

У меня немного сложное preg_replace, которое я не могу понять.preg_replace - Как соответствовать определенному номеру

Строка может быть что-то вроде 2: 456: 982: 12: 89:

Скажем, я хочу, чтобы удалить только "2:" и заменить его ничем.

Вот что я с $ focus_chat быть «2»:

preg_replace('/:' . $focus_chat . ':/', ':', $unfocus_chat); 

Теперь это будет работать, если 2: был в середине строки. Проблема в том, что 2: не будет иметь: первый, поскольку он находится в начале строки.

Любые идеи? Спасибо!

+0

Каковы значения '$ focus_chat'? –

ответ

2

Вы можете сказать: Начало строки (то есть ^) или ::

preg_replace('/(^|:)' . $focus_chat . '(:|$)/', ':', $unfocus_chat); 

Также добавлен конец строки ($) для второго разделителя.

+0

Фантастический! Только то, что мне было нужно, спасибо. – Chris

+0

Просто хотел добавить, что мне также пришлось проверить, был ли первый символ строки «:» и заменить ее ничем. – Chris

+0

@ Крис: Добро пожаловать! – hakre

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