我有像
这样的单行 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-]提取为线程字段,将 1000000648897提取为一个analysisProcessId字段,将 9153700提取为另一个insertionMonitorId字段。输入行中的字段值是可选的,输入行字段中找不到的值必须显示为空值。
任何人都可以建议如何写模式吗?
答案 0 :(得分:1)
您可以使用
\[(?<thread>[^\]\[]*)].*?analysisProcessId=(?<analysisProcessId>\d+).*?insertionMonitorId=(?<insertionMonitorId>\d+)
<强>描述强>:
\[
- 文字[
(?<thread>[^\]\[]*)
- ].*?
- 文字]
后跟除了换行符之外的任何0 +字符,尽可能少到第一个字符analysisProcessId=
- analysisProcessId=
子字符串(?<analysisProcessId>\d+)
- 群组“analysisProcessId”捕获1+位数.*?insertionMonitorId=
- 除了换行符之外的任何0 +字符尽可能少,直到和包含。第一个insertionMonitorId=
请参阅演示屏幕: