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