簡體   English   中英

Python正則表達式匹配多行文本塊

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

我的結果應該是:

  1. * 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

  2. 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/24123.3.3.0/24塊; 參見regex101

暫無
暫無

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

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