Строка соединения Notepad++ не начинается с | символ с предыдущей строки

Мне нужно импортировать большой файл с почти 50 столбцами и тысячами строк со структурой |поле|;|поле|;|поле|... Каждое поле начинается и заканчивается | (труба) и ; (точка с запятой) для разделения полей

Проблема в том, что некоторые данные имеют Enter в середине и разрушают строки.

|123|;|Азбука|;|текст

текст текст|

|124|;|АВВ|;|Текст

текст |

|125|;|BDD|;|текст текст текст|

|126|;|Азбука|;|текст текст

текст

текст|

|127|;|ABC|;|текст текст текст|

Мне нужно, если строка не начинается с | (труба), чтобы удалить предыдущий ввод, чтобы строка не прерывалась

Ожидаемый результат будет

|123|;|ABC|;|текст текст текст|

|124|;|ABB|;|Текстовый текст |

|125|;|BDD|;|текст текст текст|

|126|;|ABC|;|текст текст текст текст|

|127|;|ABC|;|текст текст текст|

Я пробовал несколько предложений по другим вопросам, но пока безуспешно. я никогда не использовал это


person Teresa    schedule 16.07.2020    source источник


Ответы (1)


Вы можете использовать сопоставление 0+ горизонтальных пробельных символов, новой строки и 0+ пробельных символов, используя \h*\R\s*.

Затем захватите в группе 1 любой символ, кроме символа пробела или вертикальной черты, используя ([^\s|])

В замене используйте пробел и группу 1.

Что найти:

\h*\R\s*([^\s|])

Заменить на:

$1

демонстрация регулярных выражений

введите здесь описание изображения

person The fourth bird    schedule 17.07.2020