正在寻找我创建的正则表达式的评论,因为我正在寻找可以改进的地方
我有以下日志消息:
2017-02-09T14:12:07.381648+00:00 ATA-CENTER ATA[4844] CEF:0|Microsoft|ATA|1.7.5757.57477|AbnormalBehaviorSuspiciousActivity|Suspicion of identity theft based on abnormal behavior|5|start=2017-02-09T14:07:22.1490000Z app=Kerberos shost=xxx suser=Last Name, First Name msg=text here. cs1Label=url cs1=https://xxx-xxx.xxxx.xxx.xxx/suspiciousActivity/589c7796135ca912ec5b75b0
这是我的正则表达式:
.*?\|ATA\|(?<version>.*?)\|(?:\w+)\|(?<alert>.*?)\|(?<severity>.*?)\|(?:.*?)\s\w+=(?<app>.*?)\s\w+=(?<src_host>.*?)\s\w+=(?<user>.*?)\s\w+=(?<msg>.*?).\s.*?
我试图忽略ATA的所有内容,然后在msg结尾处(从cs1Label开始)之后忽略所有内容。
非常感谢任何反馈。
THX
答案 0 :(得分:0)
你的正则表达式中有一个小错误。消息后面的点.
将匹配所有内容。如果你真的想要匹配一个点,你需要逃避它。 (?:\w+)
将匹配每个字符和每个数字。您也可以使用\d
来匹配数字。而且,我不会标记捕获组。在我看来,这并没有使正则表达式更具可读性。
否则对我来说似乎没问题。这是一个带有固定点的live demo。