Регулярные выражения - это своеобразный фильтр для поиска текстовых строк, соответствующий требуемым условиям. Встроенный конструктор регулярных выражений позволит быстро создавать правила, не вникая во все тонкости их составления.
Извлечение информации со страниц сайта
Фильтрация данных в списках, таблицах
Поиск письма и\или ссылки подтверждения регистрации;
Поиск конкретного фрагмента в тексте
Поиск строк для удаления в списках;
И множество других полезных применений
Для их составления вы можете воспользоваться помощником - Тестером регулярных выражений. Его можно найти в меню Инструменты → Тестер рег. выражений
Вы можете одновременно работать над несколькими регулярными выражениям в разных вкладках. В качестве имени вкладки используется текст регулярного выражения.
Сюда сохраняются все выражения, которые Вы проверяли с помощью кнопки Тест.
Тут будет находиться текст регулярного выражения. Вы можете редактировать текст в этом поле.
При внесении изменений в поля и чекбоксы из группы Помощник по созданию регулярных выражений все правки, которые Вы вносили в текст выражения вручную, будут утеряны! |
После нажатия выражение из поля Текст регулярного выражения применится к Текст для обработки. Что из этого получилось можно найти в Результат обработки.
Этот текст ищется, но не будет включён в результат работы выражения.
Данный текст включается в результат работы.
Включение\отключение многострочного поиска.
При включении данной опции, в результатах мы получим самую короткую подстроку, соответствующую составленному выражению.
В это поле нужно ввести текст, по которому будет производиться поиск текста.
Данные в это поле можно внести прямо из переменной проекта: ПКМ=>Установить значение из переменной.
Возможность установить значение из переменной добавлена в ZennoPoster 7.4.0.0 |
В выпадающем списке будут отображены переменные текущего активного проекта.
Стоит ли отображать переносы строки, табы (и некоторые другие символы) в виде специальных символов?
Выключено
Включено
Здесь будет отображён результат применения регулярного выражения к тексту.
Сюда попадут результаты работы в случае применения Групповых регулярных выражений. Пример таких выражений можно найти в описании экшена Обработка текст => Regex => В переменные.
Давайте разберём на примере конкретной и часто встречающейся задачи – парсинг ссылок. Допустим, мы получили HTML какого-то DIVа или весь DOM страницы и нам нужно спарсить все ссылки с этого кода и сохранить их в список.
Вставляем в поле наш исходный код в котором будем искать ссылки (быстро вставить код текущей активной вкладки в Тестер можно с помощью окна Просмотр текста страницы ).
Укажем подстроку, которая обычно идет перед ссылкой, а именно тег a href=”
.
Добавим кавычки, которыми закрывается строка ссылки. Не забываем галочку «Самое короткое совпадение», ведь нам нужно собрать строку только между двумя крайними кавычками.
Нажмём кнопку «Тест» и в поле «Результат обработки» появится нужный нам список из ссылок (если есть совпадения). Если получилось что-то не то, попробуйте изменить условия поиска.
Можем скопировать готовое регулярное выражение и применить его в своём шаблоне. Например, в действии Обработка текста → Regex
Регулярное выражение ищет столько подстрок, сколько есть в тексте. Если нужно взять какой-то конкретный номер совпадения, пользуйтесь диапазонами.
Регулярное выражение ищет столько подстрок, сколько есть в тексте. Если нужно взять какой-то конкретный номер совпадения, пользуйтесь диапазонами.
Большинство символов в регулярном выражении представляют сами себя за исключением специальных символов [
]
\
/
^
$
.
|
?
*
+
(
)
{
}
, которые могут быть экранированы символом \
(обратная косая черта) для представления самих себя в качестве символов текста. То есть простейшее регулярное выражение можно записать так: abc
, которому будет соответствовать строка abc.
Спец. символ | Значение | Пример | Соответствие |
---|---|---|---|
* | Число повторений 0 и больше |
|
|
. | Один любой символ, исключая символ новой строки |
|
|
+ | Число повторений 1 и больше |
|
|
? | Число повторений 0 или 1 |
|
|
| | Оператор “ИЛИ“ |
|
|
() | Группировка |
|
|
[] | Список символов, один из которых может присутствовать в тексте |
|
|
[^] | Список символов, которые не входят в указанный набор |
|
|
- | Диапазон символов (используется в квадратных скобках) |
|
|
^ | Начало строки |
|
|
$ | Конец строки |
| aaa aa |
{} | Количество повторений предыдущего символа. |
|
|
\ | Экранирование специальных символов |
|
|
\b | Граница слова |
| aa |
\B | Не граница слова |
| a |
\s | Пробельный символ |
|
|
\S | Непробельный символ |
|
|
\d | Цифровой символ |
| abc |
\D | Нецифровой символ |
|
|
\w | Буквенный или цифровой символ, включая знак _ |
|
|
\W | Любой символ, кроме буквенного, цифрового или _ |
| 123 |
\r | Возврат каретки | ||
\n | Перевод строки | ||
\t | Знак табуляции |
Модификаторы действуют с момента вхождения и до конца регулярного выражения или противоположного модификатора.
Модификатор | Описание | |
---|---|---|
(?i) | Включает | нечувствительность к регистру |
(?-i) | Выключает | |
(?s) | Включает | режим соответствия точки символам переноса строки. |
(?-s) | Выключает | |
(?m) | Многострочный поиск. | после и до символов новой строки |
(?-m) | с началом и концом текста | |
(?x) | Включает | режим без учёта пробелов между частями регулярного выражения и позволяет использовать |
(?-x) | Выключает |
Поиска фрагмента текста, «просматривая» (но не включая в найденное) окружающий текст, который расположен до или после искомого фрагмента текста. Просмотр с отрицанием используется реже и «следит» за тем, чтобы указанные соответствия, напротив, не встречались до или после искомого текстового фрагмента.
Представление | Вид просмотра | Пример | Соответствие |
---|---|---|---|
(?=шаблон) | Позитивный просмотр вперёд |
| ЛюдовикXV, |
(?!шаблон) | Негативный просмотр вперёд (с отрицанием) |
|
|
(?<=шаблон) | Позитивный просмотр назад |
| Сергей |
(?<!шаблон) | Негативный просмотр назад (с отрицанием) |
| Сергей Иванов, Игорь |
Примеры полезных регулярок для быстрого решения наиболее распространенных задач.
(?i)[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4} |
+?(\d{1,3})?[- .]?(?(?:\d{2,4}))?[- .]?[\d-]{5,9} |
(?:(?: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]?) |
(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/? |
(?<=\\)[^\.\\]*(\.[^\.]+){1,}$ |
Если Вы не знаете , как составить регулярное выражение для своей ситуации, попросите помощи у нашего сообщества на форуме в разделе Вопросы новичков или в специальной теме Регулярные выражения на все случаи жизни.