Программа состоит из блоков "Найти и заменить". В этом блоке можно указать действия, выполняемые в случае, если была сделана замена. По умолчанию выполняется следующий оператор. Программа завершается, если ни один из блоков нельзя применить или явно указан блок "Завершить".
Принцип работы программы похож на mod_rewrite для веб-сервера Apache
Символы в RE сопоставляются с такими же символами в обрабатываемом тексте. Например, RE abc может быть сопоставлено со строкой abc, но не с bac.
Обозначения для наборов символов:
. – обозначает любой символ. Например, RE a.b может соответствовать подстроке aab или azb или a#b.
[ ] – обозначает, что в этом месте может быть любой из символов, указанных в [ ].
При этом можно задавать диапазоны символов, разделяя их символом - (минус). Например, RE [0-9a-fA-F] соответствует шестнадцатеричной цифре.
Чтобы включить символ - в множество, нужно указать его сразу после [.
[^ ] – обозначает, что в этом месте может быть любой из символов, не указанных в [^ ].
\d – цифра
\w – буква, цифра или символ подчеркивания
^ – соответствует началу строки.
$ – соответствует концу строки.
Обозначения для повторения:
x* – обозначает последовательность из нуля или более повторений x. Например, RE a* соответствует пустой подстроке, подстрокам a, aa, aaa и т.д.
x+ – обозначает последовательность из одного или более повторений x. Например, RE a+ соответствует подстрокам a, aa, aaa и т.д.
x{n} – обозначает последовательность из n повторений x. Например, RE a{3} соответствует подстроке aaa.
x{n,m} – обозначает последовательность из от n до m повторений x.
x? – обозначает, что x может присутствовать или отсутствовать. Например, RE a? соответствует пустой подстроке или подстроке a.
По умолчанию при анализе текста выбирается наиболее длинный вариант, соответствующий повторению. При добавлении ? после + * } ?
предпочтительнее становится более короткий вариант. Например, RE <.+> найдет в тексте "a<i>b</i>c" подстроку "<i>b</i>",
а RE <.+?> подстроку "<i>".
Обозначения для групп:
(?:x|y|z) – обозначает x или y или z. Например, RE (?:one|two|three) соответствует подстрокам one или two или three.
(?= ) – строка с текущей позиции соответствует RE без сдвига по строке. Например, RE (?=\w*?\d)\w+ соответствует непустой строке из букв, цифр и _, содержащей как минимум одну цифру.
(?! ) – обратное условие.
(x) – обозначает, что подстрока, выделенная подвыражением x используется для последующей замены как $№ и соответствия как \№ (нумерация выполняется слева направо с 1). Также можно указать несколько вариантов через |.
\№ (где № от 1 до 99) – обозначает ранее выделенную подстроку, соответствующую №-му подвыражению RE в (). Например, RE (\d)\1 обозначает две одинаковые цифры (для сравнения RE (\d)\d обозначает две цифры, возможно различные)
В тексте замены используются следующие обозначения:
$$ – символ $
$& – подстрока, соответствующая всему RE
$№ (где № от 1 до 99) – подстрока, соответствующая №-му подвыражению RE в ()