Я переношу некоторую библиотеку с PHP на JavaScript, и я наткнулся на это регулярное выражение, некоторые его части неясно мне.
#(?: *+(?<= |^)\.((?:\([^)\n]++\)|\[[^\]\n]++\]|\{[^}\n]++\}|<>|>|=|<){1,4}?))#
Нечеткие части
-
*+
-
++
Я знаю, что это выражение должно принимать строки типа
.(title)[class]{style}<>
.[class]{style}<>
.[class](title){style}
// and so one - no metter of order \(.+\), \[.+\] and \{.+\} parts
// and optional <>, >, = or < at the end
Спасибо за объяснение.
EDIT: это выражение используется с модификатором PCRE_UNGREEDY