正则表达式用于获取某些关键字并将它们组合在一起

时间:2015-03-27 01:50:46

标签: regex

我有以下文字,我想抓住关键字" ATTEMPT TO ACCESS DATABASE"并且"被拒绝",并将这两者结合在一起。但是,这两个关键字之间存在一些用户和路径名称信息,这使我很难捕捉到我想要的东西,因为我还不是一个正则表达式专家。 XD

  

< 182> Mar 27 09:38:55 4.3.2.1 [5439570:00311-46004] 03/11/2015 14:13:05   尝试访问数据库,USER拒绝了mail / abc.nsf

是否有一个正则表达式可以帮助我满足我的要求?非常感谢所有的帮助!

1 个答案:

答案 0 :(得分:1)

查看following regex

(ATTEMPT\s+TO\s+ACCESS\s+DATABASE\s+)(\S+)\s+by\s+([\w.-]+)\s+(was\s+denied)

输出是:

MATCH 1
1.  [71-98] `ATTEMPT TO ACCESS DATABASE `
2.  [98-110]    `mail/abc.nsf`
3.  [114-118]   `USER`
4.  [119-129]   `was denied`

因此,您可以将第1组和第4组合并为ATTEMPT TO ACCESS DATABASE was denied(在任何情况下由于i选项),第2组将包含路径名,第3组将保留用户名