Поиск текста с помощью регулярных выражений
Регулярные выражения представляют компактный и гибкий формат записи условий для поиска и замены в тексте по шаблону. Определенный набор регулярных выражений может быть использован в поле Найти в диалоговом окне Найти и заменить в среде SQL Server Management Studio.
Выполнение поиска с помощью регулярных выражений
Чтобы включить использование регулярных выражений в поле Найти во время операций Быстрый поиск, Найти в файлах, Быстрая замена или Заменить в файлах, выберите параметр Использовать в разделе Параметры поиска и выберите Регулярные выражения.
В этом случае становится доступной треугольная кнопка Список ссылок , расположенная рядом с полем Найти . Нажмите кнопку для просмотра списка наиболее часто используемых регулярных выражений. При выборе любого элемента в построителе выражений он автоматически вставляется в поле Найти .
Примечание
Выражения, используемые в поле Найти , имеют некоторые синтаксические отличия от регулярных выражений, используемых в программировании на платформе Microsoft .NET Framework. Например, в режиме Найти и заменитьфигурные скобки {} используются в выражениях с тегами. Например, выражение «zo{1}» отвечает всем вхождениям «zo», за которыми следует тег 1, как, например, «Alonzo1» или «Gonzo1». В рамках платформы .NET Framework фигурные скобки {} используются в качестве квантификаторов. Таким образом, выражение «zo{1}» отвечает всем вхождениям символа «z», за которым следует только 1 символ «o», как в слове «zone», но не как в «zoo».
В следующей таблице описываются регулярные выражения, доступные в поле Справочный список.
Выражение | Синтаксис | Описание |
---|---|---|
Любой символ | . | Совпадает с любым одиночным символом, кроме символа новой строки. |
Ноль или более | * | Совпадает с нулем или большим числом вхождений предыдущего выражения, создавая все возможные совпадения. |
Один или более | + | Совпадает с одним и больше вхождений предыдущего выражения. |
Начало строки | ^ | Совпадает с вхождением, только если оно находится в начале строки текста, в котором производится поиск. |
Конец строки | $ | Совпадает с вхождением, только если оно находится в конце строки текста, в котором производится поиск. |
Начало слова | < | Совпадает с вхождением, только если оно является началом слова в тексте. |
Конец слова | > | Совпадает с вхождением, только если оно является концом слова в тексте. |
Символ новой строки | \n | Совпадает с символом новой строки, не зависящим от платформы. Вставляет символ новой строки в выражение замены. |
Любой символ из набора | [] | Совпадает с любым из символов внутри квадратных скобок ([ ]). Чтобы указать диапазон символов, начальный и конечный символ следует вводить через тире (—), например: [a—z]. |
Любой символ, не входящий в набор | [^...] | Совпадает с любым символом, не перечисленным в наборе символов после символа ^. |
либо | | | Совпадает с выражением до или после символа дизъюнкции (|). В основном используется в группах. Например, строка «(хвойный|лиственный) лес» совпадает со строками «хвойный лес» и «лиственный лес». |
ESC | |Литерально сопоставляется с символом, который находится после символа обратной косой черты (\). Это позволяет искать символы, имеющие специальное значение в регулярных выражениях, таких как { или ^. Например, \^ осуществляет поиск символа ^. | |
Выражение, заключенное в теги | {} | Совпадает со строкой, заключенной в фигурные скобки. |
Идентификатор C/C++ | :i | Совпадает с выражением ([a-zA-Z_$][a-zA-Z0-9_$]*). |
Строка в кавычках | :q | Совпадает с выражением (("[^"]*")|('[^']*')). |
Пробел или символ табуляции | :b | Совпадает с пробелами или символами табуляции. |
Целое число | :z | Совпадает с выражением ([0-9]+). |
Справочный список содержит неполный список регулярных выражений, допустимых в операциях Найти и заменить. Любые из перечисленных ниже регулярных выражений также могут быть использованы в поле Найти .
Выражение | Синтаксис | Описание |
---|---|---|
Минимум — ноль или больше | @ | Совпадает с нулем или большим числом вхождений предыдущего выражения, совпадая с минимальным числом символов. |
Минимум — один или больше | # | Совпадает с одним или большим числом вхождений предыдущего выражения, совпадая с минимальным числом символов. |
Повтор n раз | ^n | Совпадает с числом n вхождений предыдущего выражения. Например, [0-9]^4 совпадет с любым четырехзначным числом. |
Группирование | () | Группирует вложенное выражение. |
n-й текст, заключенный в теги | \n | В выражении Поиск и замена показывает, что текст должен совпадать с n-м текстом, заключенным в теги, где n — это число в диапазоне от 1 до 9. В выражении Замена \0 вставляет текст совпадения полностью. |
Выравнивание по правому краю | \(w,n) | В выражении Замена выравнивает по правому краю n-е выражение, заключенное в теги, в поле шириной, по крайней мере, w символов. |
Выравнивание по левому краю | \(-w,n) | В выражении Замена выравнивает по левому краю n-е выражение, заключенное в теги, в поле шириной, по крайней мере, w символов. |
Предотвращение совпадения | ~(Х) | Предотвращает совпадение, когда X появляется в этом месте выражения. Например, «прав~(да)» совпадает со словами «правый» и «правота», но не со словом «правда». |
Буквенно-цифровой символ | :a | Совпадает с выражением ([a-zA-Z0-9]). |
Буква | :c | Совпадает с выражением ([a-zA-Z]). |
Десятичная цифра | :d | Совпадает с выражением ([0-9]). |
Шестнадцатеричная цифра | :h | Совпадает с выражением ([0-9a-fA-F]+). |
Рациональное число | :n | Совпадает с выражением (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)). |
Строка букв | :w | Совпадает с выражением ([a-zA-Z]+). |
ESC | \e | Юникод U+001В. |
Спецсимвол Bell | \g | Юникод U+0007. |
Отмена | \h | Юникод U+0008. |
Вкладка | \t | Совпадает с символом табуляции, код Юникода U + 0009. |
символьный формат Юникода | \x#### или \u#### | Совпадает с символом, который соответствует значению #### в шестнадцатеричных цифрах в Юникоде. Символ, не входящий в основное многоязычное поле (суррогатный), можно указать с помощью элементов кода ISO 10646 или двух элементов кода Юникод, дающих значение суррогатной пары. |
В следующей таблице приведен синтаксис для совпадений по стандартным свойствам символов Юникода. Двухсимвольные сокращения идентичны перечисленным в базе данных свойств символов Юникода. Они могут быть указаны как часть кодировки. Например, выражение [:Nd:Nl:No] совпадает с любым типом цифр.
Выражение | Синтаксис | Описание |
---|---|---|
Буква в верхнем регистре | :Lu | Совпадает с любой буквой в верхнем регистре. Например, «:Luнига» совпадает со строкой «Книга», но не «книга». |
Буква в нижнем регистре | :Ll | Совпадает с одной прописной буквой. Например, «:Llнига», наоборот, совпадает со строкой «книга», но не «Книга». |
Заглавная буква | :Lt | Совпадает со строкой из одной заглавной и одной прописной буквы, например «Нж» или «Дз». |
Буква-модификатор | :Lm | Совпадает со знаками пунктуации, например запятыми, знаками ударений, двойными штрихами, используемыми для обозначения модификации предыдущей буквы. |
Другая буква | :Lo | Совпадает с другими буквами, например готическая буква «asha». |
Десятичная цифра | :Nd | Совпадает с десятичными цифрами от 0 до 9 и их эквивалентами полной ширины. |
Цифра, обозначаемая буквой | :Nl | Совпадает с цифрами, обозначаемыми при помощи букв (например римские цифры или идеографический ноль). |
Другая цифра | :No | Совпадает с другими цифрами, например старая курсивная единица. |
Открывающая пунктуация | :Ps | Совпадает с открывающей пунктуацией, например открывающиеся круглые или фигурные скобки. |
Закрывающая пунктуация | :Pe | Совпадает с закрывающей пунктуацией, например закрывающиеся круглые или фигурные скобки. |
Открывающие кавычки | :Pi | Совпадает со знаком открывающих двойных кавычек. |
Закрывающие кавычки | :Pf | Совпадает с одиночными кавычками или знаком закрывающих двойных кавычек. |
Тире | :Pd | Совпадает со знаком тире. |
Соединительная пунктуация | :Pc | Совпадает с символом подчеркивания или знаком выделения подчеркиванием. |
Другая пунктуация | :Po | Совпадает с (,), ?, ", !, @, #, %, &, *, \, (:), (;), ', и /. |
Пробел | :Zs | Совпадает с пробелами. |
Разделитель строк | :Zl | Соответствует символу Юникода U+2028. |
Разделитель абзацев | :Zp | Соответствует символу Юникода U+2029. |
Знак, отличный от пробельного | :Mn | Совпадает со всеми знаками, отличными от пробельных. |
Объединяющий знак | :Mc | Совпадает с объединяющими знаками. |
Закрывающий знак | :Me | Совпадает с закрывающими знаками. |
Математический символ | :Sm | Сопоставляется с +, =, ~, |, < и >. |
Символ валют | :Sc | Совпадает со знаком $ и остальными символами валют. |
Символ-модификатор | :Sk | Совпадает с символами-модификаторами, например двойным, одинарным диакритическим ударением и знаком долготы над гласными. |
Другие символы | :So | Совпадает с другими символами, например знаком авторских прав, знаком абзаца и знаком градуса. |
Другие управляющие символы | :Cc | Совпадает с концом строки. |
Другие символы форматирования | :Cf | Совпадает с управляющими символами форматирования, например двунаправленными управляющими символами. |
Суррогат | :Cs | Совпадает с половиной суррогатной пары. |
Символы личного пользования | :Co | Совпадает с символами из индивидуальной области. |
Другие не присвоенные символы | :Cn | Символы, не имеющие соответствия символам Юникода. |
В дополнение к стандартным свойствам символов Юникода в качестве набора символов могут быть объявлены следующие дополнительные свойства.
Выражение | Синтаксис | Описание |
---|---|---|
Коэффициент альфа | :Al | Совпадает с одним любым символом. Например, «:Alда» совпадает со словами «правда», «вода» и «сдача». |
Числовой | :Nu | Совпадает с любым числом или цифрой. |
Пунктуация | :Pu | Совпадает с любым знаком пунктуации, например ?, @, ' и т. д. |
Пробел | :Wh | Совпадает со всеми типами пробелов, включая публицистический и идеографический пробелы. |
Двунаправленный текст | :Bi | Совпадает со всеми символами скриптов с записью справа налево, например арабский или иврит. |
Символы Хангула (Hangul) | :Ha | Совпадает с корейскими символами Хангула и сочетающимися символами Джамоса (Jamos). |
Хирагана | :Hi | Совпадает с символами хираганы. |
Катакана | :Ka | Совпадает с символами катаканы. |
Идеографические символы / символы Хань / символы Кандзи | :Id | Совпадает со всеми идеографическими символами, например символами Хань и Кандзи. |