Слияние двух строк в одну - Блокнот ++

У меня есть такая строка

assignee: Akebono Brake Industry Co. Ltd.  , 
 Fujitsu Limited  application_no: 06/946,825

Я хочу, чтобы результат был

assignee: Akebono Brake Industry Co. Ltd.  , Fujitsu Limited  
application_no: 06/946,825

Чтобы перенести application_no: 06/946,825 на следующую строку, я могу найти application_no: и заменить его на \napplication_no: в моем NOTEPAD++

Но как мне перенести эту строку, которая охватывает следующую строку, на первую строку? Я имею в виду, что я должен сделать, чтобы получить Fujitsu Limited на линию, начинающуюся с правопреемника:

Любое руководство, пожалуйста?

5 ответов

Решение

Поскольку Extended является единственным режимом, который правильно обрабатывает символы новой строки, но вам необходимо сопоставлять их с регулярными выражениями, вам нужно будет сделать это в два этапа.

Во-первых, используйте поиск и замену регулярных выражений, чтобы добавить какой-нибудь узнаваемый токен в начало каждой строки, которую вы хотите продвинуть, я использовал "MATCH", но вы определенно можете это изменить.

Шаг 1: Добавьте токен в начало совпадающих строк

Затем переключитесь на Extended для поиска новой строки, за которой следует токен, и замените ее пустой строкой, чтобы удалить как разрыв строки, так и токен.

Шаг 2: Используйте токен, чтобы удалить разрыв строки

Вот еще одно решение. Один шаг:

Поиск:

(^.*,.*$)\r\n([ A-Z]*[ ])

Заменить:

\1\2\r\n

Я не знаком с notepad++, но наверняка после запятой стоит "/n"? Не могли бы вы просто удалить символ, который создает новый сегмент линии? то есть: обратное тому, что вы делаете для application_no:

Я только что написал этот макрос и работает с вашим примером. Добавьте этот макрос в shortcuts.xml, если вы используете файл win7, расположенный по адресу C:\Users\{username}\AppData\Roaming\Notepad++

Просто откройте текстовый файл и наведите курсор на первую строку, затем запустите этот макрос.

<Macro name="stackru" Ctrl="no" Alt="no" Shift="no" Key="0">
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="application_no" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1" sParam="" />
    <Action type="0" message="2302" wParam="0" lParam="0" sParam="" />
    <Action type="0" message="2451" wParam="0" lParam="0" sParam="" />
    <Action type="0" message="2306" wParam="0" lParam="0" sParam="" />
    <Action type="0" message="2326" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1601" wParam="0" lParam="0" sParam="application_no" />
    <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
    <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
    <Action type="3" message="1701" wParam="0" lParam="1" sParam="" />
    <Action type="0" message="2308" wParam="0" lParam="0" sParam="" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000D;" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000A;" />
</Macro>

Вы не можете сделать это с помощью регулярных выражений из-за недостатка движка Scintilla, который использует Notepad++. Тем не менее, он работает в расширенном режиме поиска, так что используйте его. Ищи ,\r\n и заменить на ,,

Изменить \r\n только \n в Linux или только \r в Mac OS.

Другие вопросы по тегам