使用notepad ++查找和替换复杂语句 - 正则表达式

时间:2015-02-09 17:00:59

标签: regex notepad++

现在: -

SELECT @ptrval = TEXTPTR(COLUMN_NAME) FROM TABLE_NAME   WHERE <condition>
UPDATETEXT TABLE_NAME.COLUMN_NAME @ptrval NULL NULL @textpart;

更改为: -

UPDATE TABLE_NAME set COLUMN_NAME .write(@textpart,null,null) WHERE <condition>;

2 个答案:

答案 0 :(得分:0)

根据您提供的信息,我已设法提出:

^.*(?<=from )([a-z_]+).*where\s+([a-z]+)\s?\n?.*\1\.([a-z_]+).*@([a-z]*)

替换为:

update \1 set \3 .write(\4, null, null) where \2

演示:https://regex101.com/r/rT1uE2/2

如果无效,请提供更多信息。

编辑模式和演示已更新

答案 1 :(得分:0)

这完全符合我的要求:

^SELECT @ptrval = TEXTPTR.*(?<=from )([a-zA-Z_]+).*where(.+)\r\nUPDATETEXT \1\.([a-zA-Z_]+) @ptrval NULL NULL @textpart;$

update \1 set \3 .write\(@textpart, null, null\) where \2;