[英]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.