2011-10-18 157 views
3

我有這樣合併兩行成一個 - 記事本++

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/946825到下一行,我可以找到application_no:並用\ napplication_no:代替我的NOTEPAD ++

但是,如何將跨越下一行的字符串帶回第一行?我的意思是我應該怎麼辦得到富士通有限公司到開頭的行受讓人:

任何指導意見嗎?

+0

是否斷線發生逗號後? –

+0

是的。在這種模式的所有事件中,換行符都只在逗號後出現。新行開頭的空間在所有這些事件。 –

回答

8

由於Extended是正確處理換行符的唯一模式,但需要與正則表達式匹配,所以需要分兩步進行。

首先,使用正則表達式查找和替換來添加一些可識別的標記到你想要向上移動的每一行的開始處,我使用了'MATCH',但你可以肯定地改變它。

Step 1: Add a token to beginning of matching lines

然後切換到擴展到搜索新行後跟令牌,並用一個空字符串替換它同時刪除換行符和令牌。

Step 2: Use the token to remove the line break

+0

只適用於以'富士通有限公司'開頭並非如此通用的行。 –

+0

OP沒有指定他想要執行替換的任何通用模式。 –

+0

這是我的錯。我應該提到。我給的只是一個例子。實際上,我在一個文件中擁有超過1000萬條記錄的類似模式。我需要查找所有出現的**^[] [A-Z] **(即以空格開頭並以大寫字母開頭的行),並將整行與其之前的行合併。 –

1

我不熟悉記事本++,但肯定在逗號後面有一個「/ n」?你不能只是刪除創建新的線段的字符?即:與你正在對application_no做的相反:

+0

我確實嘗試過。它刪除新的換行符,但不幫助我將(追加)這一新行返回到上一行。 –

1

你不能做到這一點與正則表達式由於在記事本++使用Scintilla的機的缺陷。然而,它在「擴展」找到模式,所以使用。搜索,\r\n並替換爲,

在Linux上將\r\n更改爲僅\n,或者在Mac OS上將\r\n更改爲僅限\r

1

我剛剛寫了這個宏,並與您的示例一起工作。 將此宏添加到shortcuts.xml中,如果使用win7文件位於C:\ Users \ {username} \ AppData \ Roaming \ Notepad ++

只需打開您的文本文件並將光標放到firts行,然後運行這個宏。

<Macro name="stackoverflow" 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> 
2

這是另一種解決方案。一步:

搜索:

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

替換:

\1\2\r\n