Я хочу извлечь подстроку поля 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