繁体   English   中英

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

[英]Extract second IP address in expression

我想使用regex从以下表达式中提取第二个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}代替+来限制与数字匹配的次数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM