Назад | Перейти на главную страницу

глобальный модификатор регулярного выражения rsyslog

Многие системы регулярных выражений имеют возможность установить глобальный модификатор, позволяющий несколько совпадений.

Вот как это устроено в Javascript и Perl.

/g

Python немного отличается

Python не имеет глобального модификатора, такого как параметр / g в Perl. Чтобы найти все совпадения с шаблоном, используйте re.findall (), а не re.search (). Метод findall возвращает список совпадений, а не объект совпадения. Если совпадение содержит захваченные подвыражения, findall вернет список кортежей, причем кортежи являются захваченными.

И список продолжается...

Однако я не могу найти нигде в документация как установить такой модификатор для rsyslog. An утилита для онлайн-тестирования доступен, но в нем упоминается следующее:

Rsyslog использует выражения POSIX ERE (и, возможно, BRE). Эта программа проверки работает с функциями php POSIX ERE. Так что теоретически может быть разница между тем, что движок, включенный в rsyslog (clib), и это веб-приложение. Однако на практике результаты должны быть примерно такими же.

Поскольку инструмент использует функции php POSIX ERE - и /g модификатор не работает в php то я считаю, что в rsyslog должно быть что-то сопоставимое с функцией php preg_match_all.

Какие-нибудь советы?