正则表达式递归查找/替换记事本++



我想知道是否可以在Notepad++中编写正则表达式,允许我将SQL INSERT脚本修改为DELETE。

下面是我正在尝试做的事情的示例。

输入:

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) = 

我不知道如何在Notepad++中编写递归正则表达式,但是您可以使用宏来自动执行至少部分转换。首先,您可以运行正则表达式

查找内容:insert into (w+) (([^)]*)) values (([^)]*));

替换为:2n3nDELETE FROMn1nWHEREn

获取上面有两个缓冲行的 DELETE 脚本的基本结构。然后单击Macro->Start Recording并按Ctrl-Homeright arrowCtrl-Shift-right arrowCtrl-xdeletedeleteCtrl-EndTabCtrl-V=',将第一个表列的名称移动到正确的位置并继续,直到您有

WHERE
AND xxxx = 'blah1111'

正确。然后,单击Stop Recording并播放宏,直到正确生成所有行。 您也可以尝试将我录制的宏直接添加到 %APPDATA%\Notepad++\快捷方式.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>

最新更新