2017-07-05 13 views
1

Notepad ++で正規表現を書くことができれば、SQL INSERTスクリプトをDELETEに変更できるかどうかは疑問です。NotgeadでRegexp再帰的な検索/置換++

以下は、私がしようとしていることの例です。

入力:

INSERT INTO table1 (xxxx, yyyy, zzzz, ....) VALUES (blah1111, foo2222, 3333333, ....); 

出力:

DELETE FROM 
    table1 
WHERE 
    AND xxxx = 'blah1111' 
    AND yyyy = 'foo2222' 
    AND zzzz = '3333333' 
    AND ....; 

私は再帰を使用しようとしましたが、私は適切に各再帰ステップのための参照を作成する方法がわかりません。

私の実際の正規表現:

Find script: ((\w+)(?R)?,) 
Replace script: (?1) = 

答えて

1

私はメモ帳++での再帰的正規表現を書く行う方法を知りませんが、あなたは、変換の少なくとも一部を自動化するマクロを使用することができます。上記の二つのバッファラインとDELETEスクリプトの基本的な構造を得るために\2\n\3\nDELETE FROM\n\1\nWHERE\n

insert into (\w+) (\([^)]*\)) values (\([^)]*\));

はと交換してください:まず、あなたはどのような検索正規表現

を実行することができます。そして、あなたはMacroクリック - >Start RecordingをしてCtrl-Homeを押し、right arrowCtrl-Shift-right arrowCtrl-xdeletedeleteCtrl-EndTabCtrl-V='、正しい位置に最初のテーブルの列の名前を移動するために、あなたが

を持つまで継続します
WHERE 
    AND xxxx = 'blah1111' 

正しく。次に、Stop Recordingをクリックし、すべての行が正しく生成されるまでマクロを再生します。また、直接私の記録したマクロに%APPDATA%\メモ帳++の\ shortcuts.xmlを追加しようとすることができます :

<Macro name="ReorderSQL" Ctrl="no" Alt="no" Shift="no" Key="0"> 
    <Action type="0" message="2316" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2306" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2442" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2177" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2318" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2327" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2179" 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="=" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="0" message="2316" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2306" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2442" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2177" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2180" wParam="0" lParam="0" sParam="" /> 
    <Action type="0" message="2318" wParam="0" lParam="0" sParam="" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&apos;" /> 
    <Action type="0" message="2179" wParam="0" lParam="0" sParam="" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&apos;" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000D;" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&#x000A;" /> 
</Macro> 
関連する問題