簡體   English   中英

正則表達式:多行檢查問題

[英]Regular Expression : Multiline check problem

你好,我有這個正則表達式的問題

!
interface TenGigabitEthernet 1/49
 description Uplink
 no ip address
 switchport
 no shutdown
!
interface TenGigabitEthernet 1/50
 no ip address
 shutdown
!
interface TenGigabitEthernet 1/51
 no ip address
 shutdown
!

我嘗試了這個regexp(接口)((。 \\ s。 )+)但它不起作用,因為它匹配“接口”和其余的文本

我需要抓住第一組“界面”,在第二組我需要所有直到第一次出現“!” 例如:第一組:

interface

第二組:

TenGigabitEthernet 1/51
 no ip address
 shutdown

我怎么能這樣做?

試試這個:

(interface)\s+([^!]+)

這是演示

用這個:

(interface)\\s*([^!]+) /g

第一組捕獲硬編碼interface 第二組捕獲除了以外的一切! ,通過跳過前導空格,如果有的話。 全局標志/g確保所有匹配。

演示

如果內容本身可以包含一個! ,你可以查一下! 在行的開頭重復匹配所有行,直到遇到! 在開始時。

^(interface)\s*(.*(?:\n(?!!).*)*)

在Java中

String regex = "^(interface)\\s*(.*(?:\\n(?!!).*)*)";

正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM