Итак, я пытаюсь выяснить регулярное выражение и у меня возникли некоторые проблемы. Я хочу найти (сопоставить) все параметры SQL в большом файле сценария, но НЕ сопоставлять элементы в одинарных кавычках (например, адреса электронной почты). Например:
INSERT INTO [User]
(
[UserGuid], [CompanyGuid], [Name], [EmailAddress]
) VALUES (
@UserGuid1, @CompanyGuid, 'Jason', 'jason@jason.com'
)
С @UserGuid1
и @CompanyGuid
соответствием, но без @jason соответствия. Я использую этот RegEx:
(@+[\w]+)
Но он совпадает с адресом электронной почты, поэтому я попытался сделать негативный взгляд вперед / назад так:
(?<!')[\W](@+[\w]+)[\W](?!')
но он соответствует '(' в следующем примере:
INSERT INTO [User] ([UserGuid]) VALUES (@UserGuid1)
У кого-нибудь есть идея, чего мне здесь не хватает? Что-то, что может сказать: «что-нибудь, что НЕ в наборе цитат?». Также можно предположить, что наборы сбалансированных котировок.