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

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

Композиция квантификаторов:​

(r∗)∗=r∗(r+)∗=r∗(r?)∗=r∗(r∗)+=r∗(r+)+=r+(r?)+=r∗(r∗)?=r∗(r+)?=r∗(r?)?=r?\begin{array}{ccc} (r^*)^*=r^* & (r^+)^*=r^* & (r^?)^*=r^* \\ (r^*)^+=r^* & (r^+)^+=r^+ & (r^?)^+=r^* \\ (r^*)^?=r^* & (r^+)^?=r^* & (r^?)^?=r^? \end{array}

Оптимизации с квантификатором *:​

(r∗∣s∗)∗=(r∣s)∗(r∗s∗)∗=(r∣s)∗(r∗∣s)∗=(r∣s)∗\begin{align*} (r^*|s^*)^* = (r|s)^* \\ (r^*s^*)^* = (r|s)^* \\ (r^*|s)^* = (r|s)^* \end{align*}

Оптимизации с альтернативами:​

rs∣rt=r(s∣t)sr∣tr=(s∣t)r\begin{align*} rs|rt = r(s|t) \\ sr|tr = (s|t)r \end{align*}

Отрицание последовательности символов:​

~(ab)=a ~b ∣ ~a .\text{\textasciitilde} (ab) = a \space \text{\textasciitilde} b \space | \space \text{\textasciitilde} a \space .