我正在尝试编写一个正则表达式,它将正确解析以下思科日志消息:
<191>45902: DC-SWITCH2: Aug 30 18:15:16.478: %SFF8472-3-THRESHOLD_VIOLATION: Te0/2: Rx power high warning; Operating value: -0.8 dBm, Threshold value: -1.0 dBm.
所需的输出:
Te0/2: Rx power high warning; Operating value: -0.8 dBm, Threshold value: -1.0 dBm.
并且:
<191>45902: DC-SWITCH2: Aug 31 19:17:30.147: sensor num : 10 sensor_value :33, high :110 low:85
所需的输出:
sensor num : 10 sensor_value :33, high :110 low:85
我为第一种情况开发了以下正则表达式,但是我无法理解如何将助记符%STRING
部分设为可选:
>\d+:\s.+?:\s.+?(?=:\s):\s%.+?(?=:\s):?\s(.+)
对于第一个示例,它返回期望的结果,但是对于第二个示例,我得到:
10 sensor_value :33, high :110 low:85
答案 0 :(得分:0)
您要使检查%STRING
的部分不会被捕获。
像这样:
>\d+:\s.+?:\s.+?(?=:\s):\s(?:%.+?:)?\s(.+)
答案 1 :(得分:0)