Регулярное выражение для замены только одного вхождения конкретного символа двумя одинаковыми символами - PullRequest
0 голосов
/ 05 марта 2020

Какое регулярное выражение я мог бы использовать для обнаружения и замены любого отдельного вхождения символа двумя одинаковыми символами? Например, Привет, сегодня мы даем вам 10%, а завтра 20 %% Я бы хотел заменить% после 10 на %% и оставить без изменений 20 %%, поэтому строка будет иметь вид Привет, сегодня мы даем вам 10 %%, а завтра 20 %%

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вы можете использовать регулярное выражение, соответствующее '%', если оно не предшествует и не следует '%'.

(?<!%)%(?!%)

Демо

(?<!%) является негативным взглядом позади ; %(?!%) является негативным взглядом .

0 голосов
/ 05 марта 2020

Используйте для этого как lookahead, так и lookbehind:

/(?<=[^%])%(?=[^%])/

Demo

Из ваших комментариев (если % может находиться на границе строки ) используйте отрицательный прогноз и отрицательный результат:

/(?<!%)%(?!%)/

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...