Regex 使用正则表达式解析Sonicwall日志文件

Regex 使用正则表达式解析Sonicwall日志文件,regex,parsing,logging,firewall,Regex,Parsing,Logging,Firewall,我又问了一个正则表达式问题。我有这样一个日志文件: 1 2014-04-24T12:10:25.661222+02:00 id=firewall sn=0017C514CD80 - - - sn=0017C514CD80 time="2014-04-24 12:02:22" fw=4.3.2.1 pri=6 c=1024 m=537 msg="Connection Closed" f=9 n=9506215 src=10.126.80.94:3995:X0 dst=1.2.3.4:80:X1 p

我又问了一个正则表达式问题。我有这样一个日志文件:

1 2014-04-24T12:10:25.661222+02:00 id=firewall sn=0017C514CD80 - - - sn=0017C514CD80 time="2014-04-24 12:02:22" fw=4.3.2.1 pri=6 c=1024 m=537 msg="Connection Closed" f=9 n=9506215 src=10.126.80.94:3995:X0 dst=1.2.3.4:80:X1 proto=tcp/http sent=2354 rcvd=1982 1 2014-04-24T12:10:25.661222+02:00 id=firewall sn=0017C514CD80----sn=0017C514CD80 time=“2014-04-24 12:02:22”fw=4.3.2.1 pri=6 c=1024 m=537 msg=“连接关闭”f=9 n=9506215 src=10.126.80.94:3995:X0 dst=1.2.3.4:80:X1 proto=tcp/http发送=2354 rcvd=1982 我想把“src=10.126.80.94:3995:X0”分成三部分。IP、端口和接口。我自己也试了很多,但我想不出来

此正则表达式匹配所有内容:

src=([^ ]*) src=([^]*) 这将仅与IP匹配:

src=([^:]*)([^:]*) src=([^:]*)([^:]*) 我只有这些了


有谁能给我一个提示,如何匹配端口和接口吗?

你真的很接近,只是缺少了一个
拆分两组非
字符的捕获组。我还为接口添加了一个组,它将是任何非空白字符(
\S
==
[^\r\n\t\f]
):


如果您不能使用
\S*
,您可以将其替换为
[^]*
,因为我们真正关心的是在到达
X0
之后的空间时停止:

src=([^:]*):([^:]*):([^ ]*)

Rsyslog不接受“(\S*)”,我使用了“[^\r\n\t\f]”。这只从接口中得到了“X”。我的完整表达式现在看起来是这样的:src=([^:]*):([^:]*):([^\r\n\t\f]{2})。谢谢。@user3674270,您只得到
X
的原因是您删除了
*
,这意味着0+次重复。但是,如果不支持
\S
,您也可以查看非空格字符。
src=([^:]*):([^:]*):([^ ]*)