• Home
  • 悦读
    • WYN photo

      WYN

      ridikuius

    • Learn More
    • Email
    • Github
  • 技术小札
    • 所有文章
    • 所有标签
  • 阅心笔记

正则表达式多行匹配

21 Jun 2016

Reading time ~1 minute

待匹配内容


Index(dec):1 (hex):1 GigabitEthernet 0/3 is DOWN  ,
line protocol is DOWN Hardware is OCTEON-SGMII GigabitEthernet,
address is 5869.6c05.05e2 (bia 5869.6c05.05e2) 
Interface address is: no ip address ARP type: ARPA,ARP Timeout: 3600 seconds   
MTU 1500 bytes, BW 1000000 Kbit   Encapsulation protocol is Ethernet-II, 
loopback not set   Keepalive interval is 10 sec ,
set   Carrier delay is 2 sec   RXload is 1 ,Txload is 1   Queueing strategy: FIFO     
Output queue 0/40, 0 drops;     Input queue 0/75, 
0 drops   Link Mode: Down.   10 seconds input rate 11111 bits/sec, 
0 packets/sec   10 seconds output rate 22.22 bits/sec, 
0 packets/sec     0 packets input, 
0 bytes, 0 no buffer, 0 dropped     Received 0 broadcasts, 
0 runts, 0 giants     0 input errors, 0 CRC, 0 frame, 
0 overrun, 0 abort     0 packets output, 0 bytes, 
0 underruns , 0 dropped     0 output errors, 0 collisions, 0 interface resets

正则表达式


def reg = "BW -*(\\d+\\.*\\d*)\\s*Kbit[\\s\\S\\r\\n]+10 seconds input rate -*(\\d+\\.*\\d*)\\s*bits/sec.*[^.]+10 seconds output rate -*(\\d+\\.*\\d*)\\s*bits\\/sec"

多行匹配:


def m = s=~ reg

测试输出:

if (m.find()){    
   println(m.group(1))     
   println(m.group(2))    
   println(m.group(3))
}

测试结果:


1000000 
11111 
22.22


javagroovy正则表达式 Like Tweet +1