Добрый день. Пытаюсь решить такую задачу.
Есть строка текста: "№1. ДЖОНСОН&ДЖОНСОН 200МЛ"
В этой строке мне нужно заменить символ амперсанда "&" (в примере выделен красным) на последовательность "&". Обязательное условие: замену проводить только там, где после амперсанда нет символа решетки "#". То есть нельзя трогать сочетания "&#".
В результате должно получиться: "№1. ДЖОНСОН&ДЖОНСОН 200МЛ".
Пробовал решить задачу так:
Но в этом случае на выходе получаю: "№1. ДЖОНСОН&ЖОНСОН 200МЛ". То есть нужная буква "Д" заменилась на новое значение, вместе с амперсандом - заменились ДВА символа, а не один.
В оригинале строка длинная, амперсандов подлежащих замене там много.
Подскажите, пожалуйста, как можно решить задачу?
Есть строка текста: "№1. ДЖОНСОН&ДЖОНСОН 200МЛ"
В этой строке мне нужно заменить символ амперсанда "&" (в примере выделен красным) на последовательность "&". Обязательное условие: замену проводить только там, где после амперсанда нет символа решетки "#". То есть нельзя трогать сочетания "&#".
В результате должно получиться: "№1. ДЖОНСОН&ДЖОНСОН 200МЛ".
Пробовал решить задачу так:
Код:
$sString = "№1. ДЖОНСОН&ДЖОНСОН 200МЛ"
$sResult = StringRegExpReplace ($sString, "&[^#]", "&")
Но в этом случае на выходе получаю: "№1. ДЖОНСОН&ЖОНСОН 200МЛ". То есть нужная буква "Д" заменилась на новое значение, вместе с амперсандом - заменились ДВА символа, а не один.
В оригинале строка длинная, амперсандов подлежащих замене там много.
Подскажите, пожалуйста, как можно решить задачу?