用于提取复杂线结构的 Grok 模式?
Grok pattern for extracting complicated line structure?
我有单行像
sgcib.solstis.core.dao.referential.InsertionMonitoringDao:10:37:36.860 [SOLSTAIRJVM1: customService :false-persistor-3-] INFO Begin updating insertion_monitoring table: analysisProcessId=1000000648897, insertionMonitorId=9153700, binFileName=TIS_MRM_Meteor_DeltaSpot_RA_SMCPLX_47769.2x2.2016-11-29-00-00-00_1480377600000.bin.tisdevweb043.SOLSTAIRJVM1
在这里,将值 [SOLSTAIRJVM1: customService :false-persistor-3-] 提取为 thread 字段 AND 1000000648897 作为一个 analysisProcessId 字段和 9153700 作为另一个 insertionMonitorId 字段。字段值在输入行中是可选的,如果在输入行中找不到,则字段必须显示为空值。
请问哪位大侠可以推荐一下pattern的写法吗?
您可以使用
\[(?<thread>[^\]\[]*)].*?analysisProcessId=(?<analysisProcessId>\d+).*?insertionMonitorId=(?<insertionMonitorId>\d+)
描述:
\[
- 文字 [
(?<thread>[^\]\[]*)
-
].*?
- 文字 ]
后跟除换行符以外的任何 0+ 个字符,尽可能少,直到第一个
analysisProcessId=
- analysisProcessId=
子串
(?<analysisProcessId>\d+)
- 组 "analysisProcessId" 捕获 1+ 个数字
.*?insertionMonitorId=
- 除换行符外的任何 0+ 个字符尽可能少,包括。第一个insertionMonitorId=
- `(?\d+) - 组 "insertionMonitorId" 捕获 1+ 个数字
查看演示屏幕:
我有单行像
sgcib.solstis.core.dao.referential.InsertionMonitoringDao:10:37:36.860 [SOLSTAIRJVM1: customService :false-persistor-3-] INFO Begin updating insertion_monitoring table: analysisProcessId=1000000648897, insertionMonitorId=9153700, binFileName=TIS_MRM_Meteor_DeltaSpot_RA_SMCPLX_47769.2x2.2016-11-29-00-00-00_1480377600000.bin.tisdevweb043.SOLSTAIRJVM1
在这里,将值 [SOLSTAIRJVM1: customService :false-persistor-3-] 提取为 thread 字段 AND 1000000648897 作为一个 analysisProcessId 字段和 9153700 作为另一个 insertionMonitorId 字段。字段值在输入行中是可选的,如果在输入行中找不到,则字段必须显示为空值。
请问哪位大侠可以推荐一下pattern的写法吗?
您可以使用
\[(?<thread>[^\]\[]*)].*?analysisProcessId=(?<analysisProcessId>\d+).*?insertionMonitorId=(?<insertionMonitorId>\d+)
描述:
\[
- 文字[
(?<thread>[^\]\[]*)
-].*?
- 文字]
后跟除换行符以外的任何 0+ 个字符,尽可能少,直到第一个analysisProcessId=
-analysisProcessId=
子串(?<analysisProcessId>\d+)
- 组 "analysisProcessId" 捕获 1+ 个数字.*?insertionMonitorId=
- 除换行符外的任何 0+ 个字符尽可能少,包括。第一个insertionMonitorId=
- `(?\d+) - 组 "insertionMonitorId" 捕获 1+ 个数字
查看演示屏幕: