Перейти к основному содержимому

Тестер регулярных выражений

🔗 Оригинальная страница — Источник данного материала


Описание

Регулярные выражения - это своеобразный фильтр для поиска текстовых строк, соответствующий требуемым условиям. Встроенный конструктор регулярных выражений позволит быстро создавать правила, не вникая во все тонкости их составления.

Где используются регулярные выражения?

  • Извлечение информации со страниц сайта
  • Фильтрация данных в списках, таблицах
  • Поиск письма и\или ссылки подтверждения регистрации;
  • Поиск конкретного фрагмента в тексте
  • Поиск строк для удаления в списках;
  • И множество других полезных применений

Как быстро составить регулярное выражение в ZennoPoster?

Для их составления вы можете воспользоваться помощником - *Тестером регулярных выражений. Его можно найти в меню Инструменты → Тестер рег. выражений

image-20210531-154644

Окно Тестера регулярных выражений

image-20210601-073016

Вкладки

image-20210601-073200

Вы можете одновременно работать над несколькими регулярными выражениям в разных вкладках. В качестве имени вкладки используется текст регулярного выражения.

История

image-20210601-073422

Сюда сохраняются все выражения, которые Вы проверяли с помощью кнопки *Тест.

Текст регулярного выражения

Тут будет находиться текст регулярного выражения. Вы можете редактировать текст в этом поле.

Внимание

При внесении изменений в поля и чекбоксы из группы Помощник по созданию регулярных выражений все правки, которые Вы вносили в текст выражения вручную, будут утеряны!

Кнопка Тест

После нажатия выражение из поля *Текст регулярного выражения применится к *Текст для обработки. Что из этого получилось можно найти в *Результат обработки.

Перед искомым текстом всегда есть, Это идёт после искомого текста

Этот текст ищется, но не будет включён в результат работы выражения.

Искомый текст всегда начинается с, Этим заканчивается искомый текст

Данный текст включается в результат работы.

Разрешить переносы

Включение\отключение многострочного поиска.

Самое короткое совпадение

При включении данной опции, в результатах мы получим самую короткую подстроку, соответствующую составленному выражению.

Текст для обработки

В это поле нужно ввести текст, по которому будет производиться поиск текста.

Данные в это поле можно внести прямо из переменной проекта: ПКМ=>Установить значение из переменной.

Информация

Возможность установить значение из переменной добавлена в ZennoPoster 7.4.0.0

image-20210601-075534

В выпадающем списке будут отображены переменные текущего активного проекта.

Показывать специальные символы

Стоит ли отображать переносы строки, табы (и некоторые другие символы) в виде специальных символов?

Выключено

image-20210601-080319

Включено

image-20210601-080335

Результат обработки

Вкладка Совпадения

Здесь будет отображён результат применения регулярного выражения к тексту.

Вкладка Группы

Сюда попадут результаты работы в случае применения Групповых регулярных выражений. Пример таких выражений можно найти в описании экшена ❗→ Обработка текст => Regex => В переменные.

Пример использования

Давайте разберём на примере конкретной и часто встречающейся задачи – парсинг ссылок. Допустим, мы получили HTML какого-то DIVа или ❗→ весь DOM страницы и нам нужно спарсить все ссылки с этого кода и сохранить их в ❗→ список.

image-20210531-155358

  1. Вставляем в поле наш исходный код в котором будем искать ссылки (быстро вставить код текущей активной вкладки в *Тестер можно с помощью окна ❗→ Просмотр текста страницы ).
  2. Укажем подстроку, которая обычно идет перед ссылкой, а именно тег a href=”.
  3. Добавим кавычки, которыми закрывается строка ссылки. Не забываем галочку «Самое короткое совпадение», ведь нам нужно собрать строку только между двумя крайними кавычками.
  4. Нажмём кнопку «Тест» и в поле «Результат обработки» появится нужный нам список из ссылок (если есть совпадения). Если получилось что-то не то, попробуйте изменить условия поиска.
  5. Можем скопировать готовое регулярное выражение и применить его в своём шаблоне. Например, в действии ❗→ Обработка текста → Regex
На заметку

Регулярное выражение ищет столько подстрок, сколько есть в тексте. Если нужно взять какой-то конкретный номер совпадения, пользуйтесь диапазонами.

Символы со специальным значением

Большинство символов в регулярном выражении представляют сами себя за исключением специальных символов [ ] \ / ^ $ . | ? * + ( ) { }, которые могут быть экранированы символом \ (обратная косая черта) для представления самих себя в качестве символов текста. То есть простейшее регулярное выражение можно записать так: `abc```xml , которому будет соответствовать строка abc.

Спец. символЗначениеПримерСоответствие
*Число повторений 0 и большеab*cabcabbcac
.Один любой символ, исключая символ новой строкиa.caac
+Число повторений 1 и большеab+cabcabbc
?Число повторений 0 или 1ab?cabcac
|Оператор “ИЛИ“a|b|ca, b, c
()Группировкаzennolab(com)+zennolabcom, zennolabcomcom
[]Список символов, один из которых может присутствовать в текстеzennoposter[57]zennoposter5, zennoposter7
[^]Список символов, которые не входят в указанный набор[^0-9]abc 123
-Диапазон символов (используется в квадратных скобках)[3-7] [а-д]3, 4, 5, 6, 7 а, б, в, г, д
^Начало строки^aaaa aaa
$Конец строкиa$aaa aaa
{}Количество повторений предыдущего символа.

Число повторений
{n} - ровно n раз
{m,n} - от m до n включительно
{m,} - не менее m раз
{,n} не более n раз
zen{2}oposter (abc){2,3}zennoposter abcabc, abcabcabc
\Экранирование специальных символовa\.b\.ca.b.c
\bГраница словаa\b \baaaa aaa
\BНе граница слова\Ba\Baaa aaa
\sПробельный символaaa\s?bbbaaa bbb, aaabbb
\SНепробельный символaaa\S+aaabc cccc
\dЦифровой символ\d+abc 123 abc
\DНецифровой символ\D+abc 123 abc
\wБуквенный или цифровой символ, включая знак _\w+abc, 123
\WЛюбой символ, кроме буквенного, цифрового или _\W+123
\rВозврат каретки
\nПеревод строки
\tЗнак табуляции

Модификаторы

Модификаторы действуют с момента вхождения и до конца регулярного выражения или противоположного модификатора.

МодификаторОписаниеОписание
(?i)Включаетнечувствительность к регистру
(?-i)Выключает
(?s)Включаетрежим соответствия точки символам переноса строки.
(?-s)Выключает
(?m)Многострочный поиск.
Символы ^ и $ вызывают соответствие только
после и до символов новой строки
(?-m)с началом и концом текста
(?x)Включаетрежим без учёта пробелов между частями регулярного выражения и позволяет использовать # для комментариев
(?-x)Выключает

Просмотр вперёд и назад

Поиска фрагмента текста, «просматривая» (но не включая в найденное) окружающий текст, который расположен до или после искомого фрагмента текста. Просмотр с отрицанием используется реже и «следит» за тем, чтобы указанные соответствия, напротив, не встречались до или после искомого текстового фрагмента.

ПредставлениеВид просмотраПримерСоответствие
(?=шаблон)Позитивный просмотр вперёдЛюдовик(?=XVI)ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL
(?!шаблон)Негативный просмотр вперёд (с отрицанием)Людовик(?!XVI)ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL
(?&lt;=шаблон)Позитивный просмотр назад(?<=Сергей )ИвановСергей Иванов, Игорь Иванов
(?&lt;!шаблон)Негативный просмотр назад (с отрицанием)(?<!Сергей )ИвановСергей Иванов, Игорь Иванов

Сборник регулярных выражений

Примеры полезных регулярок для быстрого решения наиболее распространенных задач.

E-mail адрес

(?i)[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}

Номер телефона

+?(\d{1,3})?[- .]?(?(?:\d{2,4}))?[- .]?[\d-]{5,9}

IP адрес

(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

URL адрес

(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/?

Извлечение имени и расширения файла из пути

(?<=\\)[^\.\\]*(\.[^\.]+){1,}$

Если Вы не знаете , как составить регулярное выражение для своей ситуации, попросите помощи у нашего сообщества на форуме в разделе Вопросы новичков или в специальной теме Регулярные выражения на все случаи жизни.