Конструктор регулярных выражений можно запустить из любого инструмента в программе, где предусмотрено использование регулярных выражений, таких как "Замена", "Сборщик полей" и "Разбивка статей".
Условно окно делится на 3 части:
- Конструктор регулярных выражений
- Само регулярное выражение и правило замены (для тестирования)
- Тестер регулярных выражений
Сам конструктор состоит из 3 частей:
- Текст, который следует перед тем, что ищем
- Непосредственно текст, который ищем
- Текст, который следует после того, что ищем
В свою очередь, текст который ищем так же состоит из 3 частей: начало текста, середина и окончание.
Такое разделение позволяет получить удобное количество групп для последующей замены. Группа — это часть регулярного выражения, которая выделена в скобки. Проще всего будет понять о чем идёт речь рассмотрев простой пример: допустим нам необходимо найти текст, который находится в тегах «div» и начинается со слова «Против», а заканчивается словом «биться»:
Нажимаем на кнопку «Создать регулярное выражение» и получаем:
(<div>)(Против.+?биться)(</div>)
Имеем 3 группы: открывающий тег div, текст, который начинается с «Против», а заканчивается «биться» и закрывающий тег div. Проверяем регулярное выражение:
Как видим совпало точно, как нам нужно: не захватило неподходящий тег в других div'ах и не захватило аналогичный текст, но не в теге div.
Теперь возвращаемся к группам и зачем они нужны: а нужны они для удобной замены текста. К примеру мы хотим, чтобы текст бы не в тегах «div», а в тегах «backquote». Для этого в поле Правило замены пишем следующее:
<backquote>\2</backquote>
Комбинация \2 в результате будет заменена на вторую группу нашего регулярного выражения (т.е. на текст, который начинается с «Против», а заканчивается «биться»). Тестирование замены покажет следующее:
Как видим мы добились того, чего хотели. Если вам нужно использовать первую или третью группу — просто напишите в нужных местах \1 или \3 соответственно.
Внимание: если поле «Текст перед всегда» или «После текста всегда» не заполнено, то программа не выделит его в отдельную группу, а значит групп будет меньше и их порядок может отличатся от того, что в примере. Так же программа никогда не выделяет этот текст в отдельную группу если запускать конструктор не для инструмента «Замена».