Перейти к основному содержимому

Выражение ПОДОБНО

важно

Для подавляющего большинства задач функциональность выражения Шаблон является избыточной. В случае, если шаблон зависит от пользовательского ввода, требуется аккуратно реализовать экранирование специальных символов — обычно в этом месте допускаются ошибки.

Чтобы избежать ошибок, для задач проверки вхождения подстроки в строку рекомендуется использовать функции Содержит(), НачинаетсяС(), ЗаканчиваетсяНа().

Выражение ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа.

ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО
ИЗ
Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ФИО ПОДОБНО "И%а"

Синтаксис:

проверяемое-значение [НЕ] ПОДОБНО шаблон [СПЕЦСИМВОЛ спец-символ]

В качестве шаблон и спец-символ можно использовать только константы или параметры. шаблон не может быть пустым. Все операнды должны иметь строковой тип.

Некоторые символы при использовании в шаблон имеют специальное значение:

  • _ (подчеркивание) — один любой символ
  • % — ноль или более любых символов
  • [] — любой символ из перечисленных (например [12345])
  • [^] — любой символ не из перечисленных (например [^12345])

Квадратные скобки в шаблон обязательно должны быть закрыты и не могут быть пустыми.

Если символ, имеющий специальное значение, предварить символом, указанным в спец-символ, то он воспринимается как обычный символ. В качестве значения спец-символ ожидается строка длиной 1. Это должен быть символ, который в UTF-16 кодируется без использования суррогатных пар.

Если спец-символ не задан, то в качестве экранирующего символа используется обратный слэш — \.

Символ, используемый в качестве спецсимвола (экранирующего), не может быть последним в шаблоне.

Сравнение выполняется без учета регистра.

Примеры:

  • ПОДОБНО "%123%"

    найдет строки, содержащие 123, например:

    • 123
    • 123456
    • 00123456
    • 00123
  • ПОДОБНО "%3\%" СПЕЦСИМВОЛ "\"

    найдет строки, заканчивающиеся на 3%, например:

    • 23%
    • 3%
    • 43%