Рейтинг:0

rsyslog: извлечение регулярного выражения между двумя строками

флаг cn

Я хочу извлечь подстроку поля msg между двумя строками.

Пример журнала: Тестовое локальное ведение журнала: db=testdb,message

Я хочу "testdb", поэтому строка между "db=" и ","

Это моя конфигурация:

шаблон (имя = "jsonTemplate"
         тип = "список"
         option.json="вкл") {
           константа (значение = "{")
             свойство константы (значение = "\" временная метка \": \"") (имя = "время сообщается" dateFormat = "rfc3339")
             постоянное (значение = "\", \"сообщение\":\"") свойство (имя = "msg")
             постоянное (значение = "\", \"хост\":\"") свойство (имя = "имя хоста")
             постоянное (значение = "\", \"серьезность\":\"") свойство (имя = "syslogseverity-text")
             постоянное (значение = "\", \"средство\":\"") свойство (имя = "syslogfacility-text")
             постоянное (значение = "\", \"syslogtag\":\"") свойство (имя = "syslogtag")
             константа (значение = "\", \"база данных\":\"") свойство (имя = "msg" regex.expression = "(db =) (. *) (,)" regex.match = "0" регулярное выражение .type="ERE")
           константа (значение = "\"}")
         }

Однако результат, который я получил: "db=testdb,", но я не хочу, чтобы "db=" и "," появлялись.

Я протестировал несколько регулярных выражений, но не работал:

(?<=db=)(.*)(?=,) --> это работает в https://regex101.com

Я не понимаю, почему регулярное выражение не работает.

Версия: rsyslogd: версия 8.24.0

Рейтинг:0
флаг cn

Нашел решение, используя подматч 2:

свойство(name="msg" regex.expression="(db=)(.*)(,)" regex.submatch="2" regex.type="ERE")

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.