Категория: Текст
Имя класса: RegexIsMatchBlock
Имя схемы: text_regexIsMatch
Назначение:
- Проверяет строку на соответствие регулярному выражению
Параметры:
- Вход строки - текст для проверки на соответствие
- Выпадающий список - способ проверки
- соответствует - вернет ИСТИНА, если текст соответствует паттерну
- не соответствует - вернет ИСТИНА, если текст не соответствует паттерну
Выход:
- Булево значение, результат проверки
Краткая информация.
Регулярные выражения - это мощный инструмент для работы с текстом, позволяющий искать, проверять и работать с шаблонами. Регулярные выражения позволяют описывать строки с помощью специальных символов и паттернов.
Базовые символы:
a
: соответствует символу 'a'.- Любая буква или число соответствует сама себе. С другими символами бывает по разному. Но если символ используется как специальный, то его можно экранировать с помощью "\", чтобы получить сам этот символ. Например, символ $ означает конец строки, а \$ означает $.
\d
: соответствует любой цифре (0-9).\w
: соответствует любому алфавитно-цифровому символу (буквы, цифры, _).\s
: соответствует пробельным символам (пробел, табуляция и т. д.).
Метасимволы для "всех символов":
.
: соответствует любому символу, кроме новой строки.^
: соответствует началу строки.$
: соответствует концу строки.
Количественные операторы:
*
: соответствует нулю или более повторениям предыдущего символа или группы.- Пример:
велосипед*
соответствует как "велосипед", так и "велосипеддд", а также "велосипе".
- Пример:
+
: соответствует одному или более повторениям предыдущего символа или группы.?
: соответствует нулю или одному повторению предыдущего символа или группы
Рассмотрим известный всем способ создания шаблонов через звездочки (Клапан*, *лапаны, *лапан*). Здесь звездочка означает любое количество любых символов.
В регулярных выражениях любое количество любых символов обозначается через (.*) - точка - это "любой символ", звездочка - "в любом количестве".
Но есть важный нюанс. Проверка на соответствие регулярному выражению работает по принципу поиска шаблона в предоставленном тексте. То есть, по факту, любой шаблон подразумевает наличие любого количества символов перед собой и после себя. Чтобы этого избежать, нужно использовать символы ^ и $, обозначающие начало и конец строки.
Таким образом:
- шаблону
*лапан*
соответствует регуляркалапан
. Ее пройдут тексты "Клапан", "Клапаны", "клапан", "клапаны" - шаблону
Клапан*
соответствует регулярка^Клапан
. Ее пройдут тексты "Клапан", "Клапаны" - шаблону
*лапаны
соответствует регуляркалапаны$
. Ее пройдут тексты "Клапаны", "клапаны" - шаблону
Клапан*двухстворчатый*
соответствует регулярка^Клапан.*двухстворчатый
. И такую регулярку пройдет, например текст "Клапан обратный двухстворчатый RUSHWORK 400 чугунный межфланцевый, PN16"
Чтобы поиграться с регулярками и посмотреть, как они детально работают, а так же подобрать нужную для конкретной задачи, можно воспользоваться сервисом https://regexr.com/ там есть интерактивный интерпретатор регулярок, подсказки по составлению и так далее.
Рекомендуется изучить регуярки немного дальше замены шаблонов через звездочки, так как они дают на порядки большие возможности. Кстати, нейросети очень неплохо справляются с составлением регулярок.