簡體   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