提取表达式中的第二个 IP 地址

Extract second IP address in expression

我想使用正则表达式从以下表达式中提取第二个 IP 地址(DST 的值):

kernel: DROP IN=eth0 
OUT= MAC=80:8d:8b:83:85:d0:f2:fc:bc:88:3e:f3:08:00 
SRC=111.111.111.111 
DST=222.222.222.222 
LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10520 DF PROTO=TCP 
SPT=43219 DPT=10051 SEQ=4284041495 ACK=0 WINDOW=14600 
RES=0x00 SYN URGP=0 OPT (020405B40402080A7F8A63E80000000001030306)

我使用以下正则表达式提取 SRC:

^.+?((?:\d+\.){3}\d+).+$

我无法找出提取第二个IP所需的表达式(DST)

像这样重复你得到的东西两次就可以了

^.+?((?:\d+.){3}\d+).*?((?:\d+.){3}\d+).+$

但是捕获所有 IP 地址的更好的正则表达式是

((?:\d{1,3}\.){3}\d{1,3})

您似乎曾尝试匹配 IP 地址中的句点,但忘记转义它们。

没有必要,但可以使用 {1,3} 代替 + 来限制匹配数字的次数。