Поиск текста с помощью регулярных выражений
Регулярные выражения представляют компактный и гибкий формат записи условий для поиска и замены в тексте по шаблону. Определенный набор регулярных выражений может быть использован в поле Найти диалогового окна Найти и заменить среды Среда 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. |
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 |
Совпадает со всеми идеографическими символами, например символами Хань и Кандзи. |
См. также
Задания
Поиск текста с символами-шаблонами