[英]Python regex match multiline block of text
我編寫了一個正則表達式來選擇第一個塊,但是它不起作用。 它只是選擇i2.2.2.0
,當我想添加另一個字符串時,它沒有任何內容
我的輸入是:
> 1.1.1.0/24 0.0.0.0 0 32768 i
* i2.2.2.0/24 2.2.2.2 0 100 0 i
*>i 123.2.2.106 0 100 0 i
*>i 123.1.1.106 0 100 0 i
* i3.3.3.0/24 123.3.3.107 0 100 0 i
* i 123.3.3.107 0 100 0 i
* i123.1.1.0/24 2.2.2.2 0 100 0 i
* i 123.2.2.106 0 100 0 i
*> 0.0.0.0 0 32768 i
* i123.2.2.0/24 2.2.2.2 0 100 0 i
* i 123.2.2.106 0 100 0 i
*> 0.0.0.0 0 32768 i
* i123.3.3.0/24 2.2.2.2 0 100 0 i
*>i 123.2.2.106 0 100 0 i
*>i 123.1.1.106 0 100 0 i
我的結果應該是:
* i2.2.2.0/24 2.2.2.2 0 100 0 i *>i 123.2.2.106 0 100 0 i *>i 123.1.1.106
i123.3.3.0/24 2.2.2.2 0 100 0 i *>i 123.2.2.106 0 100 0 i *>i 123.1.1.106
結果。
我的正則表達式是: (i2.2.2.0/24).*(\\n123.2.2.106)...
我需要在python代碼中使用的表達式。 我搜索了很多,但找不到結果。
謝謝 :)
您要匹配屬於所選網絡地址的塊。 可以用空格代替地址來識別連續線。 正則表達式
(\* i(?:123.3.3.0/24|2.2.2.0/24).+\n(?:\*.i .+\n)*)
例如,以任意順序匹配(使用全局修飾符) 2.2.2.0/24
和123.3.3.0/24
塊; 參見regex101 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.