Има ли пълно описание на синтаксиса на регулярния израз, използван в Sql Server Management Studio? Трябва да има начин за извършване на отрицателни предварителни прегледи, например, но диалоговият прозорец за намиране/замяна не изброява такъв.
Пълен синтаксис на Regex за Sql Server Management Studio
Отговори (2)
SSMS версии 2005-2012 всъщност са просто модифицирани/персонализирани среди на Visual Studio Shell (2005-2010), така че тази препратка към регулярния израз на Visual Studio (2005-2010) се прилага:
http://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.80).aspx
Visual Studio 2012 и по-нови преминаха към стандартни .Net регулярни изрази.
Въпреки това SSMS не последва примера и не адаптира стандартните регулярни изрази до SSMS 2016.
SSMS използва странно изпълнение на RegEx, което е много различно от това, което се използва във Visual Studio и в класа .NET Regex.
Пълен списък с неговите възможности и съответния им синтаксис могат да бъдат намерени тук в MSDN.
Дори с документацията за неговия странен диалект от регулярни изрази, може да откриете, че наборът му от функции доста липсва. (Примери: Не поддържа основни неща като оператора ? или полезни разширени неща като положително оглеждане.) Можете да правите отрицателно оглеждане с този синтаксис:
Prevent match ~(X) Prevents a match when X appears at this point in the expression. For example, real~(ity) matches the "real" in "realty" and "really," but not the "real" in "reality."
Единственото предимство, което съм виждал от странния SSMS диалект, е, че той съдържа много вградени символни класове, които не се виждат в много други машини.
Примери:
Math symbol :Sm Matches +, =, ~, |, <, and >. Currency symbol :Sc Matches $ and other currency symbols.
ЗАБЕЛЕЖКА ЗА ТЕЗИ, КОИТО ВЕЧЕ ИЗПОЛЗВАТ РЕГУЛЯРНИ ИЗРАЗИ ДРУГАДЕ:
Реално погледнато, освен ако не възнамерявате да използвате МНОГО персонализираните групи, които съдържа, вероятно няма да си струва времето да научите този странен диалект на Regex. Копирайте вашата заявка в редактор с по-стандартна реализация (visual studio 2012 или по-нова, notepad++ и т.н.) и ще бъдете по-добре обслужени.