Слияние двух строк в одну - Блокнот ++
У меня есть такая строка
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", но вы определенно можете это изменить.
Затем переключитесь на Extended для поиска новой строки, за которой следует токен, и замените ее пустой строкой, чтобы удалить как разрыв строки, так и токен.
Вот еще одно решение. Один шаг:
Поиск:
(^.*,.*$)\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="
" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="
" />
</Macro>
Вы не можете сделать это с помощью регулярных выражений из-за недостатка движка Scintilla, который использует Notepad++. Тем не менее, он работает в расширенном режиме поиска, так что используйте его. Ищи ,\r\n
и заменить на ,
,
Изменить \r\n
только \n
в Linux или только \r
в Mac OS.