Пробелы в регулярных выражениях
Исходные данные в родительском узле могут иметь большое количество ненужных пробелов, что может привести к ошибке переполнения стека (stack overflow), если вы попробуете выполнить этот узел.
Такие правила опасны и могут привести к переполнению стека. Примером такого правила может быть запрос вида [^[:upper:]]+\s+
. Здесь [^[:upper:]]+
находит любые элементы не верхнего регистра, в том числе пробелы, и \s+
также находит пробелы. Чтобы избежать возникновения ошибки переполнения стека такое правило лучше переписать в виде [^[:upper:]\s]+\s+
. Также можно добавить узел Замена терминов до текущего узла и заменить \s+
одним пробелом.
Чтобы игнорировать все пробелы в правиле, отметьте галочкой опцию Игнорировать пробелы.
Обычно данная опция очень удобна и полезна. Она позволяет писать многострочечные правила, например:
или использовать макросы
Как следует из изложенного выше, PolyAnalyst может игнорировать символы управления (пробелы, абзацы, табуляция), которые используются в регулярных выражениях. Чтобы найти эти символы, нужно использовать одиночные символы и классы символов.
Однако это поведение по умолчанию всегда можно изменить, отключив опцию Игнорировать пробелы.