Регулярные выражения
Last updated
Last updated
Регулярные выражения — наборы символов, применяемых для поиска текстовых строк, соответствующих требуемым условиям. В рамках работы чат-ботов BotHunter они позволяют проверять полученное от пользователя сообщение на соответствие выражению.
Большинство символов в регулярных выражениях представляют сами себя, за исключением группы специальных символов «[ ] \ / ^ $ . | ? * + ( ) { }». Если эти символы нужно представить в качестве символов текста, их следует экранировать обратной косой чертой «\».
Если эти спецсимволы встречаются без обратной косой черты, значит у них особенные значения в регулярных выражениях:
«^» — каретка, циркумфлекс или просто галочка. Начало строки;
«$» — знак доллара. Конец строки;
«.» — точка. Любой символ;
«*» – знак умножения, звездочка. Любое количество предыдущих символов;
«+» – плюс. 1 или более предыдущих символов;
«?» – вопросительный знак. 0 или 1 предыдущих символов;
«( )» – круглые скобки. Группировка конструкций;
«|» – вертикальная линия. Оператор «ИЛИ»;
«[ ]» – квадратные скобки. Любой из перечисленных символов, диапазон. Если первый символ в этой конструкции – «^», то массив работает наоборот – проверяемый символ не должен совпадать с тем, что перечислено в скобках;
«{ }» – фигурные скобки. Повторение символа несколько раз;
«\» – обратный слеш. Экранирование служебных символов.
Также существуют специальные метасимволы, ими можно заменить некоторые готовые конструкции:
\b — обозначает не символ, а границу между символами;
\d — цифровой символ;
\D — нецифровой символ;
\s — пробельный символ;
\S — непробельный символ;
\w — буквенный или цифровой символ или знак подчеркивания;
\W — любой символ, кроме буквенного или цифрового символа или знака подчеркивания.
Допустим нам нужно создать регулярное выражение, которое бы проверяло написание даты в формате 26 декабря, 15:00
В таком случае наше регулярное выражение выглядело бы так: \d{1,2} [а-я]+, \d{1,2}:\d{2}
Где: \d = цифровой символ \d{1,2} = 1 или 2 цифровых символа [а-я]+ = одна и более букв на кириллице , : = запятая и двоеточие пробел = пробел