Score:0

rsyslog: แยก regex ระหว่าง 2 สตริง

ธง cn

ฉันต้องการแยกสตริงย่อยของฟิลด์ msg ระหว่าง 2 สตริง

ตัวอย่างของบันทึก: ทดสอบการบันทึกในเครื่อง: db=testdb,message

สิ่งที่ฉันต้องการคือ "testdb" ดังนั้นสตริงระหว่าง "db=" และ ","

นี่คือการกำหนดค่าของฉัน:

แม่แบบ (ชื่อ = "jsonTemplate"
         ประเภท = "รายการ"
         option.json="เปิด") {
           ค่าคงที่ (ค่า = "{")
             ค่าคงที่ (value="\"timestamp\":\"") คุณสมบัติ (ชื่อ="timereported" dateFormat="rfc3339")
             ค่าคงที่ (ค่า="\",\"ข้อความ\":\"") คุณสมบัติ (ชื่อ="msg")
             ค่าคงที่ (ค่า = "\",\"โฮสต์\":\"") คุณสมบัติ (ชื่อ = "ชื่อโฮสต์")
             ค่าคงที่ (value="\",\"severity\":\"") คุณสมบัติ (ชื่อ="syslogseverity-text")
             ค่าคงที่ (value="\",\"facility\":\"") คุณสมบัติ (ชื่อ="syslogfacility-text")
             ค่าคงที่ (ค่า="\",\"syslogtag\":\"") คุณสมบัติ (ชื่อ="syslogtag")
             ค่าคงที่ (ค่า="\",\"ฐานข้อมูล\":\"") คุณสมบัติ (ชื่อ="msg" regex.expression="(db=)(.*)(,)" regex.match="0" regex .type="ERE")
           ค่าคงที่ (ค่า = "\"}")
         }

อย่างไรก็ตาม ผลลัพธ์ที่ฉันได้รับคือ: "db=testdb," แต่ฉันไม่ต้องการให้ "db=" และ "," ปรากฏขึ้น

ฉันได้ทดสอบ regex หลายรายการแล้ว แต่ไม่ได้ผล:

(?<=db=)(.*)(?=,) --> ใช้งานได้ใน https://regex101.com

ฉันไม่เข้าใจว่าทำไม regex ไม่ทำงาน

เวอร์ชัน: rsyslogd: เวอร์ชัน 8.24.0

Score:0
ธง cn

พบวิธีแก้ปัญหาโดยใช้การจับคู่ย่อย 2:

คุณสมบัติ(ชื่อ="msg" regex.expression="(db=)(.*)(,)" regex.submatch="2" regex.type="ERE")

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา