Переключение положений слов в Notepad ++

Мой текст выглядит так:

Text1 | Text2 | Text3 | Text4 | Text5 | Text6 | Text7 

И я хочу изменить текстовые позиции, как это

Text1 | Text4 | Text5 | Text6 | Text2| Text3 | Text7 

И если это возможно, чтобы удалить | между текстом 4, 5, 6, так что это выглядит

Text1 | Text4 Text5 Text6 | Text2 | Text3 | Text7

Если это невозможно, я буду рад, если первая проблема будет решена.

1 ответ

Вы можете использовать

^([^|]*\|)((?:[^|]*\|){2})((?:[^|]*\|){3})

И заменить на $1$3$2,

Детали:

  • ^ - начало строки
  • ([^|]*\|) - Группа 1 ($1) захватить ноль или более символов, кроме | а затем буквальный |
  • ((?:[^|]*\|){2}) - группа 2 ($2) захват 2 последовательностей того же шаблона, что и в группе 1
  • ((?:[^|]*\|){3}) - группа 3 ($3) захват 2 последовательностей того же шаблона, что и в группе 1

Порядок изменяется с порядком обратных ссылок в шаблоне замены.

Убрать 2-го, 3-го и 4-го |используйте аналогичное выражение:

Найдите что: ^([^|]*\|)([^|]*)\|([^|]*)\|([^|]*)
Заменить на: $1$2$3$4

По сути, вы просто манипулируете групповыми захватами и порядком обратных ссылок в шаблоне замены, вот и все.

Другие вопросы по тегам