Notepad++ объединить 10 + строк в 1 строку

Я пытаюсь использовать Notepad++, чтобы объединить несколько строк в одну. Проблема, с которой я сталкиваюсь при попытке этот код, я получаю этот результат:

Date/Time:
Sequence:
Event:
Category:
Priority:
Attention:
Alert:
Visibility:
Description:
Codes:
Type:
Location:
Logged by:

найти: (.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)rn(.+)

заменить:
ttttttttttttt

результат:
Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Date/Time:0 Date/Time:1 Date/Time:2 Date/Time:3

может ли кто-нибудь помочь более простым или коротким способом? Я не могу выделить текст и выбрать, чтобы соединить линии. В документе тысячи таких результатов, и я пытаюсь их упорядочить. Это всегда набор из 13.

11
задан Dane
16.01.2023 20:13 Количество просмотров материала 2371
Распечатать страницу

3 ответа

Вариант 1: измените замену на использование Фигурных чисел:

Edit: исправлена строка замены

\g{1}\t\g{2}\t\g{3}\t\g{4}\t\g{5}\t\g{6}\t\g{7}\t\g{8}\t\g{9}\t\g{10}\t\g{11}\t\g{12}\t\g{13}\t

\t\t\t\t\t\t\t\t\t\t\t\t

Вариант 2: строка соответствия для включения именованных групп:

(?<a>.+)\r\n(?<b>.+)\r\n(?<c>.+)\r\n(?<d>.+)\r\n(?<e>.+)\r\n(?<f>.+)\r\n(?<g>.+)\r\n(?<h>.+)\r\n(?<i>.+)\r\n(?<j>.+)\r\n(?<k>.+)\r\n(?<l>.+)\r\n(?<m>.+)

и измените строку replace, чтобы использовать эти группы:

Edit: исправлена замена string

\г{а}\Т\Г{Б}\Т\Г{С}\Т\Г{Д}\т\г{е}\т\г{ф}\т\г{г}\т\г{ч}\т\г{я}\т\г{Дж}\Т\Г{К}\т\г{л}\т\г{м}

$+{a}\t$+{b}\t$+{c}\t$+{d}\t$+{e}\t$+{f}\t$+{g}\t$+{h}\t$+{i}\t$+{j}\t$+{k}\t$+{l}\t$+{m}

ваш выбор, хотя Вариант 1 меньше работы, Вариант 2 также может пригодиться.

Новая Заметка: имена в Варианте 2, <a> и {a} не ограничиваются одним персонажем. Это может быть любая строка типа' name', которую вы хотите, если она находится в обычном диапазоне букв, цифр и подчеркиваний. Не уверен если другое допустимы специальные символы, включая пробелы. Избегать их мудрее всего, на всякий случай.

3
отвечен Gypsy Spellweaver 2023-01-18 04:01

Способ 1

Поиск → Заменить...

  • найти что: \r\n
  • заменить на: \t
  • обертывание: проверено
  • режим поиска: регулярное выражение

Способ 2

изменить → пустые операции → EOL пробел

2
отвечен 2023-01-18 06:18

если все 13 строк начинаются с Date/Time:, вы могли бы сделать это. Он заменит все разрывы строк, за которыми не следует Date/Time С табуляцией:

  • Ctrl+H
  • найти: \R(?!Date/Time:)
  • заменить на: \t
  • снимите флажок Match case
  • проверить обернуть вокруг
  • проверяем регулярно выражение
  • заменить все

объяснение:

\R              : any kind of linebreak
(?!             : start negative lookahead, make sure we don't have after
  Date/Time:    : literally
)               : end lookahead

результат для 3 наборов строк:

Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
0
отвечен Toto 2023-01-18 08:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх