0

我希望使用 .NET 正则表达式重构代码。目的是拆分声明和赋值(为了向后兼容 SQL 2005)。

样本输入:

DECLARE @clientCode char(10), @city nvarchar(100) = '', @country char(2) = 'US',
   @clientId int

期望的输出:

DECLARE @clientCode char(10), @city nvarchar(100), @country char(2),
   @clientId int
SELECT @city = '', @country = 'us'

这是我到目前为止匹配输入的内容:

DECLARE\s+
(
    ,?
    (@\w+\s+)
    (\(.+\))?
    (\=\s+\w+)?
)+

我可以使用什么替换正则表达式来获得预期的输出?

4

2 回答 2

1

即使您使用RegEx.

我建议你在代码中写出一些注释良好的字符串操作。

于 2012-05-03T11:36:13.243 回答
1

好吧,只是为了好玩,如果您手头碰巧有SQL Server 2012 功能包,您可能会使用Microsoft.SqlServer.Management.SqlParser.Parser来解析您现有的 SQL 20xx 代码并生成等效的 2005 代码。您甚至可以使用 PowerShell 这样做。不错的周末项目,嗯?:-)

于 2012-05-03T14:52:42.087 回答