Regex -仅在子字符串存在时匹配

pw136qt2  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(81)

我正在使用Fail 2Ban中的Regex。
这是我需要抓取的一行日志:

Jul 14 13:30:44 servername kernel: [  803.539059] [UFW BLOCK] IN=eth0 OUT= MAC=somemacadress SRC=somesourceip DST=somedestinationip LEN=60 TOS=0x00 PREC=0x00 TTL=53 ID=18692 DF PROTO=TCP SPT=50852 DPT=5003 WINDOW=14600 RES=0x00 SYN URGP=0

字符串
我需要使用SRC=?(?P<host>\S+)获得的IP somesourceip
但是:我只想要它,如果DPT=5003也存在。这是我挣扎的地方。
有人能帮忙吗?
多谢了!
我已经找到了^.*substring.*$来搜索子字符串,但我无法将两者结合起来。

btqmn9zl

btqmn9zl1#

可以使用positive lookahead

SRC=?(?P<host>\S+).*(?=DPT=5003)

字符串
这与您现有的字符串匹配,后跟零个或多个其他字符,然后是DPT=5003字符串。

相关问题