我想知道是否可以在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 ....;
我尝试过使用递归,但我不知道如何正确地为每个递归步骤提供引用。
我的实际RegEx:
Find script: ((\w+)(?R)?, )
Replace script: (?1) =
答案 0 :(得分:1)
我不知道如何在Notepad ++中编写递归正则表达式,但您可以使用宏来自动执行至少部分转换。首先,您可以运行RegEx
找到:.gitignore
替换为:insert into (\w+) (\([^)]*\)) values (\([^)]*\));
使用上面的两个缓冲行来获取DELETE脚本的基本结构。然后点击\2\n\3\nDELETE FROM\n\1\nWHERE\n
- > Macro
并按Start Recording
,Ctrl-Home
,right arrow
,Ctrl-Shift-right arrow
,Ctrl-x
,delete
,delete
,{ {1}},Ctrl-End
,Tab
,Ctrl-V
,将第一个表格列的名称移动到正确的位置并继续,直到您拥有
=
正确。然后单击'
并播放宏,直到正确生成所有行。
您也可以尝试将我录制的宏直接添加到%APPDATA%\ Notepad ++ \ shortcuts.xml:
WHERE
AND xxxx = 'blah1111'