2017-02-09 4 views
2

Я хочу заменить последовательный повторяющийся шаблон только одним шаблоном. Например:Замена последовательного повторяющегося шаблона с использованием регулярного выражения

  1. ABABABABB -> ABB
  2. AAACCC -> AC
  3. AABAAC -> ДКС

Как я могу добиться этого с помощью регулярного выражения?

ответ

4

Следующая регулярное выражение находит все совпадения с повторяющимся узором в них:

(.+?)\1+ 

Рабочий пример можно найти здесь: https://regex101.com/r/noOaHJ/1. Кроме того, регулярное выражение - это просто инструмент для поиска шаблонов - как вы его используете для реальной замены, зависит от языка, который вы используете.

+0

привет, спасибо за ответ. Я попробовал то, что вы предложили. Он заменит все вхождения одного и того же шаблона. Я хочу, чтобы он менял только последовательные шаблоны. Например: ABABABABBDAB следует изменить на ABBDAB. –

+0

Как я уже сказал, регулярное выражение может помочь вам найти шаблоны - если вы играете со ссылкой, которую я дал, вы увидите, что регулярное выражение, которое я дал, отлично работает. у вас есть проблемы с кодом, который использует это регулярное выражение для фактической замены. –

+0

этот вопрос, как есть, отвечает я думаю. для замены вы должны задать другой вопрос для замены шаблона регулярного выражения. это потому, что ответ на этот вопрос будет зависеть от используемого вами языка. –

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