我經常使用SQL Server Management Studio 10.5編輯器中的正則表達式搜索和替換來清理使用前自動生成的sql。在Visual Studio 2010編輯器中也會出現下述相同的行爲。SQL Server Management Studio/Visual Studio正則表達式錯誤?
我有,我想清理下面的SQL INSERT語句:
INSERT INTO [lttadev].[dbo].[GameInst]
([GameInstId]
,[GameSetId]
,[UserInfoId]
,[GameLevelId]
,[CreatedOn]
,[CreatedBy]
,[ModifiedOn]
,[ModifiedBy])
VALUES
(<GameInstId, uniqueidentifier,>
,<GameSetId, uniqueidentifier,>
,<UserInfoId, uniqueidentifier,>
,<GameLevelId, uniqueidentifier,>
,<CreatedOn, datetime,>
,<CreatedBy, uniqueidentifier,>
,<ModifiedOn, datetime,>
,<ModifiedBy, uniqueidentifier,>)
要改變價值觀條款我有以下兩個正則表達式:
,[^,]*,\>
\<
兩個被替換由一個空字符串刪除不需要的文本。第一個去掉逗號,類型,第二個逗號和最後的尖括號。第二個去掉初始角度支架。兩者都按預期工作。
但是如果我加入正則表達式成單一表達以加速文本處理,他們選擇不同的文本:
(,[^,]*,\>|\<)
第一表達式選擇預期的文本。然而,第二個表達式獲得第一個尖括號以及前面的逗號。這是正則表達式引擎中的缺陷還是我在這裏不理解某些東西?
你認爲你在這裏使用什麼正則表達方言? VS和SSMS有自己特殊的方言:http://msdn.microsoft.com/en-us/library/2k3te2cs.aspx – Oded 2012-03-05 17:13:55
我的印象是,兩者都使用相同的方言。工作表達式在Visual Studio和SSMS中均可用。 Visual Studio和SSMS中的非工作表達式都失敗。 – 2012-03-05 17:22:11
我的意思是與.NET不同的方言。 – Oded 2012-03-05 17:23:02