Я изо всех сил пытаюсь решить эту проблему в Notepad++. Буду очень признателен за хороший ответ.

Допустим, у меня есть эта строка:

watermelon:strawberries

И я хочу получить это:

strawberries:watermelon

Как я могу сделать это для всех строк в Notepad++? Я пробовал разные вещи, но я не мог получить этот результат.

2 ответа2

3

Предполагая, что у вас есть some string , за которой следует : а затем some string , и вы хотите, чтобы обе строки поменялись местами, вы можете использовать поиск и замену RegEx, чтобы заставить их изменить позицию.

Открыть диалог поиска и замены (CTRL + H)

В поле Найти что: введите (.+):(.+)

В поле Заменить на: введите \2:\1

Внизу в режиме поиска измените его на регулярное выражение.

Нажмите « Заменить все» и все поменяются местами.

Если это не дает желаемого результата, отредактируйте ваш вопрос и лучше укажите, что вы хотите. Теперь он немного открыт для интерпретации, поэтому я предполагаю целый ряд, где где-то есть: и он поменяется местами. Может быть несколько слов с пробелами и т.д., И все поменяются местами.


Регулярное выражение объяснило:

( ... ) это группа. Всякий раз, когда вы добавляете группу в регулярное выражение, в замене вы можете найти то, что она нашла, используя \1, \2, \3 в порядке ввода.
. есть: найти любого персонажа.
+ is: предыдущий один или несколько раз.

Таким образом (.+) Означает, создать группу, которую мы можем найти, и в этой группе найти любой символ один или несколько раз.

: is: Этот символ не имеет значения, поэтому его ищут как литерал :
И снова (.+) Как описано выше.

Итак, с точки зрения непрофессионалов, мы находим что-либо, пока не находим : и помещаем это в группу, а все остальное мы помещаем в другую группу. Это группы 1 и 2 по-репетивно.

В нашей замене мы меняем позиции группы, сначала ссылаясь на группу 2, а затем на 1, и добавляем : чтобы снова разделить группы.

0
  1. Нажмите CTRL-H для поиска / замены функции.
  2. Активируйте "Режим регулярного выражения" (alt-g или переключатель внизу слева)
  3. Введите следующий шаблон поиска регулярного выражения в поле "Найти что": (.*):(.*)
  4. Введите следующий шаблон замены регулярного выражения в поле "Заменить на": $ 2: $ 1
  5. Используйте кнопки в верхнем правом углу для просмотра найденных результатов или используйте "Заменить все", чтобы заменить их все за один раз.

Пара заметок:

  • Вы можете пересмотреть шаблон, если некоторые из ваших строк содержат несколько двоеточий.
  • Вы можете узнать больше о регулярных выражениях. Проверьте страницы, такие как http://www.regular-expressions.info/ или исчерпывающий https://regex101.com/ (или используйте Google - это большая большая тема)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .