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

Оглавление


Описание

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


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

  • Извлечение информации со страниц сайта

  • Фильтрация данных в списках, таблицах

  • Поиск письма и\или ссылки подтверждения регистрации;

  • Поиск конкретного фрагмента в тексте

  • Поиск строк для удаления в списках;

  • И множество других полезных применений


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

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

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

Вкладки

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

История

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

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

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

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

Кнопка Тест

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выключено

Включено

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

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

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

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

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


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

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

  1. Вставляем в поле наш исходный код в котором будем искать ссылки (быстро вставить код текущей активной вкладки в Тестер можно с помощью окна Просмотр текста страницы ).

  2. Укажем подстроку, которая обычно идет перед ссылкой, а именно тег a href=”.

  3. Добавим кавычки, которыми закрывается строка ссылки. Не забываем галочку «Самое короткое совпадение», ведь нам нужно собрать строку только между двумя крайними кавычками.

  4. Нажмём кнопку «Тест» и в поле «Результат обработки» появится нужный нам список из ссылок (если есть совпадения). Если получилось что-то не то, попробуйте изменить условия поиска.

  5. Можем скопировать готовое регулярное выражение и применить его в своём шаблоне. Например, в действии Обработка текста → Regex


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

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

Спец. символ

Значение

Пример

Соответствие

Спец. символ

Значение

Пример

Соответствие

*

Число повторений 0 и больше

ab*c

abcabbcac

.

Один любой символ, исключая символ новой строки

a.c

aac, abc, acc

+

Число повторений 1 и больше

ab+c

abcabbc

?

Число повторений 0 или 1

ab?c

abcac

|

Оператор “ИЛИ“

a|b|c

a, b, c

()

Группировка

zennolab(com)+

zennolabcom, zennolabcomcom

[]

Список символов, один из которых может присутствовать в тексте

zennoposter[57]

zennoposter5, zennoposter7

[^]

Список символов, которые не входят в указанный набор

[^0-9]

abc 123

-

Диапазон символов (используется в квадратных скобках)

[3-7]
[а-д]

3, 4, 5, 6, 7
а, б, в, г, д

^

Начало строки

^a

aaa 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\.c

a.b.c

\b

Граница слова

a\b
\ba

aaa aaa
aaa aaa

\B

Не граница слова

\Ba\B

aaa aaa

\s

Пробельный символ

aaa\s?bbb

aaa 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

(?<=шаблон)

Позитивный просмотр назад

(?<=Сергей )Иванов

Сергей Иванов, Игорь Иванов

(?<!шаблон)

Негативный просмотр назад (с отрицанием)

(?<!Сергей )Иванов

Сергей Иванов, Игорь Иванов

 

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

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

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 адрес

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

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