sql 脚本上的正则表达式

regex on sql script

我需要对数百个 SQL 脚本文件执行搜索和替换操作。想法是改造这个:

USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* comments xxxx */
ALTER PROCEDURE ....
    BEGIN
        ...
    END

进入这个:

ALTER PROCEDURE ....
    BEGIN
        ...
    END

为此,我会使用 Notepad++。我想删除 ALTER PROCEDURE 之前的任何内容。我怎样才能做到这一点?

将以下内容与 . matches newline 一起使用:

Find what:    USE\s+\[[^\]]*?\].*?(ALTER\s+PROCEDURE.*?\bEND\b)
Replace with: 

\[[^\]]*?\] 将确保您将匹配 USE.

之后从 [] 的任何字符

编辑:如果您打算只删除 ALTER 的开头到最后出现的所有内容 ,您可以在 Find what 字段中使用 .+(?=ALTER) 正则表达式,并替换为空字符串(空字符串)。

设置: