Маска и рег. выражение
Для поля строки задаются свойства маски и регулярного выражения, позволяющие настроить контроль за вводом данных. Данные свойства не являются эквивалентными и позволяют по разному настроить правила ввода и проверку вводимых данных. Маска даёт простое и наглядное представление правила ввода с подстановкой дополнительных символов, а регулярное выражение позволяет задать более сложный шаблон с дополнительными условиями.
| Надо быть осторожным при задании маски и регулярного выражения одновременно, так как они могут оказаться взаимоисключающими. |
Маска используются для поля строки с любым подтипом кроме текста и задаётся в свойстве Маска. Маска определяет простую спецификацию ввода данных и подставляет дополнительные символы при наборе.
| Маска не проверяет обязательность вводимых данных и не блокирует сохранение записи. |
| Символ | Значение |
|---|---|
A, a |
алфавитный символ |
N, n |
алфавитный символ или цифра |
X, x |
любой символ |
9, 0 |
цифра |
D, d |
цифра не равная 0 (1-9) |
# |
цифра или знак плюс/минус |
H, h |
шестнадцатиричный символ (A-F, a-f, 0-9) |
B, b |
двоичный символ (0, 1) |
> |
следующие алфавитные символы переводятся в верхний регистр |
< |
следующие алфавитные символы переводятся в нижний регистр |
! |
изменение регистра отключается |
\ |
отменить действие специальных символов и использовать их в качестве разделителей |
>a!aaaaaaaaaaaaaaaaaaa |
имя, первый символ приводится к большой букве, не более 20 букв |
000.000.000.000;_ |
IP-адрес |
hh:hh:hh:hh:hh:hh;_ |
MAC-адрес |
>nnnnn-nnnnn-nnnnn-nnnnn;# |
лицензионный номер, приведение алфавитных символов к верхнему регистру |
| Описание регулярных выражений для использования в Руне даётся в упрощённом виде. Дополнительную информацию и примеры применения см. в интернете. |
Регулярное выражение используется для поля строки с любым подтипом кроме текста и задаётся в свойстве Рег. выражение. Регулярное выражение позволяет настроить правила ввода данных и установить проверку различных критериев.
| Поля, для которых не выполняются условия заданных регулярных выражений, при сохранении записи подсвечиваются красным оттенком и операция отменяется. |
Правила регулярного выражения строятся с использованием символов, кванторов, групп и др.
Символы
Символы можно разделить на четыре группы:
- непосредственно символы:
a,A,1, ...; - специальные символы с предваряющим обратным слешем:
[ ] \ / ^ $ . | ? * + ( ) { }; - набор символов, заключённый в квадратные скобки:
[QWERTY],[A-Z],[А-Яа-я0-9Ёё], ...; - метасимволы, заменяющие собой некоторые наборы символов:
.– любой символ;\d– цифра;\D– нецифровой символ;\w– буква, цифра или символ подчеркивания;\W– символ, не являющийся буквой, цифрой или символом подчеркивания;\s– пробел;\S– любой символ кроме пробела.
Для исключения символа одной из групп используется знак крышки: ^, но если он является первым символом в регулярном выражении, то это означает, что соответствие проверяется для начала строки (см. ниже).
Для определения позиции символа в строке используются следующие символы:
^– начало строки;$– конец строки;\b– граница слова;\B– не граница слова.
Квантификация (число повторений)
Квантификатор после символа определяет сколько раз этот символ может повториться, а после набора символов — сколько раз может повториться любой из символов набора:
{n}– ровно n раз;{n,}– не менее n раз;{,m}– не более m раз;{n,m}– не менее n и не более m раз;?– нет или один раз (аналог {0,1});*– нет или любое число (аналог {0,});+– один и более раз (аналог {1,}).
Группировка и проверка
Символы ( и ) служат для группировки ряда элементов, входящих в состав образца, в один элемент. Для разделения вариантов образцов используется символ |.
Круглые скобки с ? и вариантом условия используются для проверки подстроки, расположенной перед закрывающейся скобкой (подстрока должна быть фиксированной длины):
(?<=)– что должно стоять после строки;(?<!)– что не должно стоять после строки;(?=)– что должно стоять перед строкой;(?!)– что не должно стоять перед строкой.
Примеры простых регулярных выражений
.+ |
не пустая строка (хотя бы один символ) |
(?!\s).*\S |
не пустая строка исключающая пробелы в начале и в конце |
\d* |
строка, допускающая только цифры |
\d{5} |
строка из цифр длиной 5 символов |
.{,10} |
строка не более 10 символов |
\w{5,8} |
строка содержащая от 5 до 8 букв |
(1|2|3) |
строка содержащая один из трёх вариантов цифр |
^[0-9-+( ),]{0,58}$ |
поле для ввода номеров телефонов |
^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$ |
телефонный номер |
^[a-z0-9_-]{3,16}$ |
логин от 3 до 16 символов |