免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2678 | 回复: 7
打印 上一主题 下一主题

[文本处理] [求助]正则匹配不定的多行日志 谢谢!在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-15 09:40 |只看该作者 |倒序浏览
本帖最后由 oneasen 于 2013-05-15 14:50 编辑

求助 就是用一条正则能够匹配下面4种多行日志,然后把每一行内容取出来放到一个Token中(主要是有些行一会有一会没有)如图,匹配时会有一行怎么也无法匹配上。



下面是我写的正则,怎么都会差一行,希望高手帮忙,谢谢了!

(\d+\-\d+\-\d+\-\d+\.\d+\.\d+)\.\d+\+\d+\s+(\S+)\s+LEVEL\:\s+(\w+)[\s]+((PID.*[\s]+)?(Dump.*[\s]+)?(INSTANCE.*[\s]+)?(APPHDL.*[\s]+)?(AUTHID.*[\s]+)?(EDUID.*[\s]+)?(FUNCTION.*[\s]+)?(MESSAGE.*[\s]+)?(DATA.*[\s]+)?)

-------------------------------需匹配的日志内容--------------------------------------------

2013-04-02-22.19.34.333712+480 I118138086     LEVEL: Severe
PID     : 17039662             TID  : 173994      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-62796              APPID: 39.0.0.11.42068.130329063316
AUTHID  : DB2INST1
EDUID   : 17399               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, DRDA Communication Manager, sqljcReadHdrAs, probe:20
MESSAGE : ZRC=0x80360086=-2143944570=SQLJC_ERROR_PRTCLE "PROTOCOL ERROR"

2013-04-02-22.19.34.333903+480 I118138199     LEVEL: Severe
PID:17039662 TID:173994 NODE:000 Title: **** DRDA CMNMGR CB ****
Dump File: /home/db2inst1/sqllib/db2dump/17039662.173994.000.dump.bin

2013-04-02-21.57.00.207556+480 E118137421     LEVEL: Info
PID     : 17039662             TID  : 49089       PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
EDUID   : 4908               EDUNAME: db2logmgr (xxdb) 0
FUNCTION: DB2 UDB, data protection services, sqlpgArchiveLogFile, probe:3180
DATA #1 : <preformatted>
Completed archive for log file S0065855.LOG to TSM chain 11 from /xxdblog/NODE0000/.

2013-04-02-20.47.16.669912+480 I118134377A436     LEVEL: Warning
PID     : 17039662             TID  : 157289      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-56181
EDUID   : 15729               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, bsu security, sqlexSlsSystemAuthenticate, probe:150
MESSAGE : application id:
DATA #1 : String with size, 26 bytes
2700000B.A0F3.130407025517

2013-04-03-18.58.18.376270+480 I118294142     LEVEL: Warning
PID     : 17039662             TID  : 113341      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-49984
EDUID   : 11341               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, bsu security, sqlexLogPluginMessage, probe:20
DATA #1 : String with size, 66 bytes
Password validation for user db2look failed with rc = -2146500507

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-05-15 09:46 |只看该作者
目测看不懂呀,lz最好是描述一下,要匹配哪4种日志内容,  它们有什么特征之类滴。。。。

论坛徽章:
13
丑牛
日期:2013-08-16 15:08:22技术图书徽章
日期:2013-11-26 10:13:40双鱼座
日期:2013-11-08 15:03:26戌狗
日期:2013-11-08 13:52:30技术图书徽章
日期:2013-11-05 14:06:30戌狗
日期:2013-10-31 11:45:42CU十二周年纪念徽章
日期:2013-10-24 15:41:34天秤座
日期:2013-10-11 14:55:08子鼠
日期:2013-09-26 19:36:35水瓶座
日期:2013-09-26 17:44:56午马
日期:2013-08-26 10:24:23丑牛
日期:2013-08-19 14:43:22
3 [报告]
发表于 2013-05-15 14:15 |只看该作者
楼主能把要的结果贴出来么,就搞了一坨扔在那里,都不知要干什么

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
4 [报告]
发表于 2013-05-15 14:43 |只看该作者
楼主能写这么厉害的正则,高手高手。所以一直到现在才来一次论坛吧。景仰中。

论坛徽章:
0
5 [报告]
发表于 2013-05-15 14:54 |只看该作者
我又更新了下~各位大侠~再看看·~看看我表述的清楚不~~

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2013-05-15 14:57 |只看该作者
你是在什么语言或脚本里面使用这个正则的?
以顶楼数据为例,哪一行没有匹配成功?

论坛徽章:
0
7 [报告]
发表于 2013-05-15 15:31 |只看该作者
本帖最后由 oneasen 于 2013-05-15 15:36 编辑

我用Regex Buddy这个正则工具写的。 下面红色的地方匹配不上!!!!我是()?用这种方式来匹配有或者没有的,前面的几行都是有固定的字符例如FUNCTION、MESSAGE等,但是最后一行的行手会出现任何字符。如果我在我的正则末尾再加个(.*)? 那么蓝色的地方就又无法匹配~~郁闷啊!

-------------------------------需匹配的日志内容--------------------------------------------

2013-04-02-22.19.34.333712+480 I118138086     LEVEL: Severe
PID     : 17039662             TID  : 173994      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-62796              APPID: 39.0.0.11.42068.130329063316
AUTHID  : DB2INST1
EDUID   : 17399               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, DRDA Communication Manager, sqljcReadHdrAs, probe:20
MESSAGE : ZRC=0x80360086=-2143944570=SQLJC_ERROR_PRTCLE "PROTOCOL ERROR"

2013-04-02-22.19.34.333903+480 I118138199     LEVEL: Severe
PID:17039662 TID:173994 NODE:000 Title: **** DRDA CMNMGR CB ****
Dump File: /home/db2inst1/sqllib/db2dump/17039662.173994.000.dump.bin


2013-04-02-21.57.00.207556+480 E118137421     LEVEL: Info
PID     : 17039662             TID  : 49089       PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000
EDUID   : 4908               EDUNAME: db2logmgr (xxdb) 0
FUNCTION: DB2 UDB, data protection services, sqlpgArchiveLogFile, probe:3180
DATA #1 : <preformatted>
Completed archive for log file S0065855.LOG to TSM chain 11 from /xxdblog/NODE0000/.

2013-04-02-20.47.16.669912+480 I118134377A436     LEVEL: Warning
PID     : 17039662             TID  : 157289      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-56181
EDUID   : 15729               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, bsu security, sqlexSlsSystemAuthenticate, probe:150
MESSAGE : application id:
DATA #1 : String with size, 26 bytes
2700000B.A0F3.130407025517

2013-04-03-18.58.18.376270+480 I118294142     LEVEL: Warning
PID     : 17039662             TID  : 113341      PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : xxdb
APPHDL  : 0-49984
EDUID   : 11341               EDUNAME: db2agent (xxdb) 0
FUNCTION: DB2 UDB, bsu security, sqlexLogPluginMessage, probe:20
DATA #1 : String with size, 66 bytes
Password validation for user db2look failed with rc = -2146500507


论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
8 [报告]
发表于 2013-05-15 16:38 |只看该作者
写正则的前提是:能知道要匹配的行有什么特征,这些特征是不需要匹配的行没有的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP