Полный синтаксис Regex для Sql Server Management Studio - PullRequest
11 голосов
/ 24 июня 2011

Есть ли полное описание синтаксиса регулярных выражений, используемого в Sql Server Management Studio? Например, должен быть способ сделать отрицательный прогноз, но в диалоговом окне поиска / замены его нет.

Ответы [ 2 ]

6 голосов
/ 05 сентября 2014

SSMS использует qurky реализацию 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 ++ и т. Д.), И вам будет лучше.

6 голосов
/ 25 июня 2011

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...