Поделиться через


Поиск текста с помощью регулярных выражений

Регулярные выражения представляют компактный и гибкий формат записи условий для поиска и замены в тексте по шаблону. Определенный набор регулярных выражений может быть использован в поле Найти диалогового окна Найти и заменить среды Среда SQL Server Management Studio.

Выполнение поиска с помощью регулярных выражений

  1. Чтобы включить использование регулярных выражений в поле Найти во время операций Быстрый поиск, Поиск в файлах, Быстрая замена или Замена в файлах, выберите параметр Использовать в разделе Параметры поиска и выберите Регулярные выражения.

  2. В этом случае становится доступной треугольная кнопка Список ссылок, расположенная рядом с полем Найти. Нажмите кнопку для просмотра списка наиболее часто используемых регулярных выражений. При выборе любого элемента в построителе выражений он автоматически вставляется в поле Найти.

ПримечаниеПримечание

Выражения, используемые в поле Найти, имеют некоторые синтаксические отличия от регулярных выражений, используемых в программировании на платформе 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.

Backspace

\h

Юникод U+0008.

Tab

\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

Совпадает со всеми идеографическими символами, например символами Хань и Кандзи.

См. также

Задания

Поиск текста с символами-шаблонами

Основные понятия

Поиск и замена