2011-10-18 22 views
3

私はapplication_no持参するには、出力が1に2つの行をマージ - メモ帳++

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 

のような行があります。次の行に06/946825を私はapplication_no:を見つけ、\ napplication_no:を私のノートに入れてください。

しかし、次の行にまたがる文字列を最初の行に戻すにはどうすればいいですか?私は譲受人で始まる行に富士通を取得するために何をすべきか意味:

どれ指導してください?

+0

は、コンマの後に改行が発生していますか? –

+0

はい、あります。そのようなパターンのすべての出現では、改行はコンマの後にのみ発生します。新しい行は、そのようなすべての箇所にスペースがあることから始まります。 –

答えて

8

改行は正しく扱いますが、正規表現とマッチさせる必要がある唯一のモードなので、2つのステップでこれを行う必要があります。

最初に、regexのfindとreplaceを使用して、上に移動したい各行の先頭に認識可能なトークンを追加します。私は '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

私はnotepad ++に慣れていませんが、確かにカンマの後に "/ n"がありますか?新しい線分を作成する文字を削除するだけではありませんか?つまり:あなたがやっていることの逆をapplication_no:

+0

私はこれを試しました。新しい改行は削除されますが、この新しい行を前の行に戻す(追加する)ことはできません。 –

1

メモ帳++が使用するScintillaのエンジンの欠陥に起因する正規表現であることを行うことはできません。ただし、"拡張"検索モードで動作しますので、それを使用してください。 ,\r\nを検索し、,に置き換えてください。

\r\nをLinuxの場合は\n、Mac OSの場合は\rに変更してください。

1

私はちょうどそのマクロを書いたし、あなたの例で動作します。 win7ファイルを使用している場合は、shortcuts.xmlにこのマクロを追加します。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