Выражение ПОДОБНО
Для подавляющего большинства задач функциональность выражения Шаблон
является избыточной. В случае, если шаблон зависит от пользовательского ввода, требуется аккуратно реализовать экранирование специальных символов — обычно в этом месте допускаются ошибки.
Чтобы избежать ошибок, для задач проверки вхождения подстроки в строку рекомендуется использовать функции Содержит()
, НачинаетсяС()
, ЗаканчиваетсяНа()
.
Выражение ПОДОБНО
позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа.
ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО
ИЗ
Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ФИО ПОДОБНО "И%а"
Синтаксис:
проверяемое-значение [НЕ] ПОДОБНО шаблон [СПЕЦСИМВОЛ спец-символ]
В качестве шаблон и спец-символ можно использовать только константы или параметры. шаблон не может быть пустым. Все операнды должны иметь строковой тип.
Некоторые символы при использовании в шаблон имеют специальное значение:
_
(подчеркивание) — один любой символ%
— ноль или более любых символов[]
— любой символ из перечисленных (например[12345]
)[^]
— любой символ не из перечисленных (например[^12345]
)
Квадратные скобки в шаблон обязательно должны быть закрыты и не могут быть пустыми.
Если символ, имеющий специальное значение, предварить символом, указанным в спец-символ, то он воспринимается как обычный символ. В качестве значения спец-символ ожидается строка длиной 1. Это должен быть символ, который в UTF-16 кодируется без использования суррогатных пар.
Если спец-символ не задан, то в качестве экранирующего символа используется обратный слэш — \
.
Символ, используемый в качестве спецсимвола (экранирующего), не может быть последним в шаблоне.
Сравнение выполняется без учета регистра.
Примеры:
-
ПОДОБНО "%123%"
найдет строки, содержащие 123, например:
- 123
- 123456
- 00123456
- 00123
-
ПОДОБНО "%3\%" СПЕЦСИМВОЛ "\"
найдет строки, заканчивающиеся на 3%, например:
- 23%
- 3%
- 43%