寻找有关正则表达式配置的反馈

时间:2017-02-09 15:21:05

标签: regex

正在寻找我创建的正则表达式的评论,因为我正在寻找可以改进的地方

我有以下日志消息:

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

1 个答案:

答案 0 :(得分:0)

你的正则表达式中有一个小错误。消息后面的点.将匹配所有内容。如果你真的想要匹配一个点,你需要逃避它。 (?:\w+)将匹配每个字符和每个数字。您也可以使用\d来匹配数字。而且,我不会标记捕获组。在我看来,这并没有使正则表达式更具可读性。

否则对我来说似乎没问题。这是一个带有固定点的live demo