kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]

Как правильно составить регулярное выражение?

Доброго времени суток, ув. "жители" Тостера.
Не приложу ума, как склепать регулярное выражение, позволяющее найти в строке следующего вида одиночный знак процента (рядом с ним не должно быть второго процента). Однако, если рядом стоит два процента - они экранируются между собой, т.е. за процент мы считать их не должны:
скидка 10%% цена в акции = пусто цена в 10%%% магазине %d %скидка % на %, товар в магазине 25%%


Подведя итог хочу выделить жирным то, что мы должны получить при составлении верного регулярного выражения:
скидка 10%% цена в акции = пусто цена в 10%%% магазине %d скидка % на %, товар в магазине 25%%
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
@MiiNiPaa
Можете попробовать вот такое выражение: (?:[^%]|^)(?:%%)*(%)(?:[^%]|$)
https://regex101.com/r/aD0mW1/1

Выглядит страшно, потому что я убрал захват ненужных частей (Если не страшно, можно убрать ?: отовсюду) и разрешил процентам появляться в начале/конце строки
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
не маяться херней, а заменить пару %% на ~~~$~~~
выкинуть одиночные
и заменить обратно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы