Điểm:0

rsyslog: trích xuất regex giữa 2 chuỗi

lá cờ cn

Tôi muốn trích xuất một chuỗi con của trường thông báo giữa 2 chuỗi.

Ví dụ về nhật ký: Kiểm tra ghi nhật ký cục bộ: db=testdb,message

Cái tôi muốn là "testdb", vì vậy, chuỗi giữa "db=" và ","

Đây là cấu hình của tôi:

mẫu (tên = "jsonTemplate"
         gõ = "danh sách"
         option.json="on") {
           hằng số (giá trị = "{")
             hằng số (giá trị = "\" dấu thời gian \": \"") thuộc tính (tên = "timereported" dateFormat = "rfc3339")
             hằng số (giá trị = "\", \ "tin nhắn \": \"") thuộc tính (tên = "tin nhắn")
             hằng số (giá trị = "\", \ "máy chủ \": \"") thuộc tính (tên = "tên máy chủ")
             hằng số (giá trị = "\", \ "mức độ nghiêm trọng \": \"") thuộc tính (tên = "syslogseverity-text")
             hằng số (giá trị = "\", \ "cơ sở \": \"") thuộc tính (tên = "syslogfacility-text")
             thuộc tính hằng(giá trị="\",\"syslogtag\":\"")(tên="syslogtag")
             hằng số(giá trị="\",\"cơ sở dữ liệu\":\"") thuộc tính(tên="thông điệp" regex.expression="(db=)(.*)(,)" regex.match="0" regex .type="ERE")
           hằng số (giá trị = "\"}")
         }

Tuy nhiên, kết quả tôi nhận được là: "db=testdb," nhưng tôi không muốn "db=" và "," xuất hiện.

Tôi đã thử nghiệm một số biểu thức chính quy nhưng không hoạt động:

(?<=db=)(.*)(?=,) -> cái này hoạt động trong https://regex101.com

Tôi không hiểu tại sao regex không hoạt động.

Phiên bản: rsyslogd: phiên bản 8.24.0

Điểm:0
lá cờ cn

Tìm thấy giải pháp bằng cách sử dụng submatch 2:

property(name="msg" regex.expression="(db=)(.*)(,)" regex.submatch="2" regex.type="ERE")

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.