gpt4 book ai didi

Python正则表达式并多次查找

转载 作者:行者123 更新时间:2023-12-01 06:04:27 26 4
gpt4 key购买 nike

我在正则表达式方面遇到了一些问题。

我想在我的文本中找到所有“文章”内容。两篇文章之间可能有一个“章节”,但目前我跳过它。

这是我的文字(没有\n):

Chapter 1Lorem ipsum dolor sit amet,diamArticle 1Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitorChapter 2Duis arcu in pedeArticle 2Praesent blandit odio eu eArticle 3Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae

要获得多个匹配,我想我必须使用 findall()。但我的小正则表达式不起作用:

re.findall(r"""Article\s(?P<number>\d+)(?P<content>.*)""",content,re.UNICODE)

内容参数获取我的所有文本。我认为这是因为有 .*那么正则表达式如何在我的文本中匹配多次呢?我不必使用 findall() 还是我的正则表达式无效?

所以如果有人有想法,谢谢。

Ps:我只想通过使用正则表达式来完成此操作,以取得进展。

最佳答案

您需要吞下所有内容,直到找到 Article\s 或输入结束。这可以通过使用惰性量词和正向前瞻测试来完成:

re.findall(r"""Article\s(?P<number>\d+)(?P<content>.*?)(?=Article\s|$)""",content,re.UNICODE)

另一个解决方案是针对 Article\s 进行拆分,但随后您需要放弃第一个拆分的组。然后,除第一组之外的每个分组都将遵守:

^(?P<number>\d+)(?P<content>.*)$

关于Python正则表达式并多次查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862176/

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