Python正则表达式匹配多行文本块

Python正则表达式匹配多行文本块,python,regex,Python,Regex,我编写了一个正则表达式来选择第一个块,但它不起作用。 它只选择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

我编写了一个正则表达式来选择第一个块,但它不起作用。 它只选择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块;请参阅。

尝试此^[*>]+i[\d./]+?\s+[\d.]+\s+.*谢谢您的回复,我测试了您的正则表达式,结果是所有行,但我想将第一行与我在结果部分的帖子中写的三行匹配。然后找到第二个。您提供了当前输出和预期结果,但输入是什么?@Stribizev,对不起,我编辑了我的帖子。您没有提到编译正则表达式时使用的标志。您至少需要re.MULTILINE | re.DOTALL