Я должен соединить две линии. Один из них имеет точку конца к предыдущему в целом текстовом примере:

line1:hello
line2:goodbye.

Мне нужно изменить это на:

line1: hello goodbye.

Я должен удалить каждую 3-ю строку (кратно 3, например 3,6,9,12,15,18,21, ... строк) этого огромного текста.

Это то, что я хочу сделать.

Первая задача:

  • проверить каждую строку

  • если это заканчивается периодом . перейти к следующей строке,

  • если это не заканчивается периодом . присоединить следующую строку к текущей строке.

Каждая строка не имеет номера строки, они начинаются с обычных слов.

Второе задание

  • с самого начала каждая третья строка является мусором и должна быть удалена

  • первое задание также должно быть выполнено, потому что в некоторых частях 3-е предложение разделено на 2 строки, поэтому сначала я должен полностью объединить строку, которая разделена на 2 строки, а затем выполнить второе задание.

Я использую Windows 7. Я могу использовать Notepad ++ и Ultraedit

1 ответ1

0

Первая задача, которую я бы сделал в Notepad++, используя поиск и замену по регулярному выражению:

  • Откройте "Поиск"> «Заменить ...»
  • В качестве «Найти что:» введите "([^\.])\r\n" (без кавычек)
    • Значение регулярного выражения: найдите строку, которая заканчивается чем-то отличным от «.»
    • Примечание. Если в документе есть окончания файлов Linux, вы должны использовать просто «\n» вместо «\r\n».
  • В качестве «Заменить на:» введите "\1 " (без кавычек; обязательно скопируйте пробел после «\1»)
  • В качестве "Режим поиска" выберите "Регулярное выражение"
  • Нажмите "Заменить все"

Входные данные:

hello
goodbye.
hello
hello
goodbye.
hello.
goodbye.

Выход:

hello goodbye.
hello hello goodbye.
hello.
goodbye.

Вторая задача может быть выполнена с еще более длинным регулярным выражением:

  • Откройте "Поиск"> «Заменить ...»
  • Как «Найти что:», введите "(([^\r\n]*\r\n){2})[^\r\n]*\r\n" (без кавычек)
    • Значение выражения: найдите блок из трех строк.
    • Примечание. Опять же, если в документе есть окончания файлов Linux, вы должны использовать просто «\n» вместо «\r\n».
  • Как «Заменить на:», введите "\1" (без кавычек)
  • В качестве "Режим поиска" выберите "Регулярное выражение"
  • Нажмите "Заменить все"

Входные данные:

hello goodbye.
hello hello goodbye.
sdlfj sdgf.
hello.
goodbye.
(/%&/$&=)?)=´?&%.
goodbye goodbye.
bye.
sldfjsdökl.
hello.

Выход:

hello goodbye.
hello hello goodbye.
hello.
goodbye.
goodbye goodbye.
bye.
hello.

Примечание: в обоих примерах я предполагал, что нет пробелов в конце. Если это так, вам нужно сначала удалить это, например, заменив регулярное выражение (как выше) "\s*$" на "" (без кавычек).

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