ReGex:从重复序列中获取多个匹配

时间:2015-05-13 10:19:55

标签: python regex

我正在尝试使用正则表达式在python中拆分多行字符串。我的正则表达式经验有限。

字符串的结构如下:

asdf
foo 1
bar
barfoo
bar
foo 2
baz 
baz 
...
foo 20 
bat
bat

我正在寻找一个可以找到多个匹配的表达式,因为目前我只找到所有内容或者什么也没找到。所以输出应该是这样的:

["foo 1\nbarbarfoobar","foo 2 \nbaz\nbaz\n...",...]

根据我的理解,我应该寻找foo \d+后跟一些随机内容... ((\n|.*)?)*

foo \d+((\n|.*)?)*

我研究了负面的前瞻,但插入一个并没有帮助我。

foo \d+((\n|.*)?)*(?!foo)

我想这可以通过仅使用内置的String方法来解决,但稍后我将不得不做这样的事情,所以我正在寻找一个“简单”的解决方案。 / p>

1 个答案:

答案 0 :(得分:1)

([\s\S]+?(?=(?:\nfoo \d+|$)))

您可以使用re.findall尝试此操作。请参阅演示。

https://regex101.com/r/mT0iE7/5