2012-05-03 31 views
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+)? 
)+ 

,我可以用什麼替代正則表達式獲得預期的產出?

回答

1

即使你得到這個RegEx工作,這將是一個維修的噩夢。

我建議你在代碼中寫出一些註釋得很好的字符串操作。

+0

不情願地我認爲你是對的。對此使用正則表達式將是維護頭痛。 –