gpt4 book ai didi

python - 在 python 中使用多个正则表达式提取特定文本?

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:38 24 4
gpt4 key购买 nike

我在 python 3 中使用正则表达式时遇到问题,所以如果有人能帮助我,我会很高兴。我有一个如下所示的文本文件:

Header A
text text
text text
Header B
text text
text text
Header C
text text
here is the end

我想做的是在标题之间列出一个文本列表,但包括标题本身。我正在使用这个正则表达式:

 re.findall(r'(?=(Header.*?Header|Header.*?end))',data, re.DOTALL)

结果来了

['Header A\ntext text\n text text\n Header', 'Header B\ntext text\n text text\n Header', 'Header C\n text text here is the end']

问题是我在列表中的每个项目的末尾都得到了下一个标题。正如您所看到的,当我们找到下一个 header 时每个 header 都会结束,但最后一个 header 不会以特定方式结束

有没有办法使用正则表达式获取每个标题的列表(不是元组),包括它自己的文本作为子字符串?

最佳答案

Header [^\n]*[\s\S]*?(?=Header|$)

试试这个。查看演示。

https://regex101.com/r/iS6jF6/21

import re
p = re.compile(r'Header [^\n]*[\s\S]*?(?=Header|$)')
test_str = "Header A\ntext text\ntext text\nHeader B\ntext text\ntext text\nHeader C\ntext text\nhere is the end"

re.findall(p, test_str)

关于python - 在 python 中使用多个正则表达式提取特定文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29013314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com