2

Как это:

A
B
C

D
E
F

G
H
I

К этому:

A     B     C

D     E     F

G     H     I

Это файл с 2500 строками, так что я бы не просто нажал Ctrl + J.

2 ответа2

7

Нажмите Ctrl+H, чтобы открыть диалоговое окно «Заменить», отметьте «Регулярное выражение» и введите вышеприведенные выражения. Вот это в тексте:

Найти что: (.+)\r\n(.+)\r\n(.+)
Замените на: \1\t\2\t\3\t (последний \t не обязателен; вы не заметите никакой разницы, если удалите его, если только вы не ожидаете, что строка заканчивается символом табуляции)

Замените \r\n в поле "Найти что:" на:

  • \n если вы редактируете файл с окончанием строки в стиле UNIX (только перевод строки)
  • \r\n если вы редактируете файл с окончанием строки в стиле Windows (возврат каретки с последующим переводом строки; в этом случае вам не нужно изменять исходное регулярное выражение)
  • \r если вы редактируете файл с традиционным концом строки в стиле Mac (только возврат каретки)

Вы можете узнать, какой конец строки вы используете, изучив строку состояния в нижней части окна Notepad++. Будет сказано "Дос \Windows" и т.д.


Если ваш файл имеет несовместимые окончания строк (что в целом плохо, но не невозможно), и вы хотите заменить все возможные типы строк за один раз:

Найти что: (.+)(\r|\n)+(.+)(\r|\n)+(.+)
Заменить на: \1\t\3\t\5\t

Вы можете узнать больше о регулярных выражениях здесь.

0

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

  • Ctrl+H
  • Найти что: [^\r\n]\K\R(?!\R)
  • Заменить на: \t
  • проверить обернуть
  • проверьте регулярное выражение
  • Заменить все

Объяснение:

[^\r\n]     : not a line break
\K          : forget all we have seen until this position
\R          : any kind of line break
(?!\R)      : negative lookahead, make sure we don'thave a line break after

Замена:

\t          : a tabulation

Результат для данного примера:

A   B   C

D   E   F

G   H   I

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