我有以下文字,我想抓住关键字" 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
是否有一个正则表达式可以帮助我满足我的要求?非常感谢所有的帮助!
答案 0 :(得分:1)
(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组将保留用户名