所以我想弄清楚一個正則表達式,並有一些問題。我想查找(匹配)的是大型腳本文件中的所有SQL參數,但不匹配單引號中的項目(例如電子郵件地址)。例如:正則表達式不匹配報價中的項目
INSERT INTO [User]
(
[UserGuid], [CompanyGuid], [Name], [EmailAddress]
) VALUES (
@UserGuid1, @CompanyGuid, 'Jason', '[email protected]'
)
隨着@UserGuid1
和@CompanyGuid
匹配,但不@jason匹配。我一直用這個正則表達式:
(@+[\w]+)
但它的電子郵件地址相匹配,所以我試圖做一個負前瞻/背後是這樣的:
(?<!')[\W](@+[\w]+)[\W](?!')
但它相匹配的「(」在下面的例子:
INSERT INTO [User] ([UserGuid]) VALUES (@UserGuid1)
任何人都有一個想法是什麼,我在這裏失蹤的東西,可以說:「?什麼,是不是在報價集」此外,它是安全的假設均衡報價套。
我不認爲這會起作用,因爲在第二個示例文本中的參數之前沒有空格。 –
現在已修復(過度使用會導致用戶失望,jeff) – SilentGhost
好的,這似乎工作,雖然它會匹配不是電子郵件地址但是是引用輸入的'@something'。添加引號或後面的引號會有所幫助,如下所示: (?<= \ W)(?<!')(@ \ w +)(?!') –