猿问

如何在捕获组中抓取多个段落?

我正在使用此代码:(?i)(?<!\d)Item.*?1A.*?Risk.*?Factors.*?\n*(.+?)\n*Item.*?1B获取以下文本:


ITEM 1A.    RISK FACTORS


In addition to other information in this Form 10-K, the following risk factors should be carefully considered in evaluating us and our business because these factors currently have a significant impact or 


In addition to other information in this Form 10-K, the following risk factors should be carefully considered in evaluating us and our business because these factors currently have a significant impact or 



ITEM 1B.

但它不会抓取捕获组中的任何内容,除非它是这样的一段:


ITEM 1A.    RISK FACTORS


In addition to other information in this Form 10-K, the following risk factors should be carefully considered in evaluating us and our business because these factors currently have a significant impact or 


ITEM 1B.


慕勒3428872
浏览 113回答 2
2回答

拉莫斯之舞

尝试(?i)(?<!\d)Item.*?1A.*?Risk.*?Factors.*?\n*((.*\n*)+)\n*Item.*?1B为了您未来的正则表达式头痛,一个令人难以置信的资源:&nbsp;https ://regex101.com干杯-

心有法竹

您的正则表达式匹配任意数量的换行符,然后是一行上任意数量的文本,然后是任意数量的换行符 - 它只在换行符之间寻找一个“段落”,因为.它不会跨行捕获。尝试用类似的东西替换它[\s\S],这将捕获所有内容 - 包括换行符、段落、文本、空格、任何你想要的东西。特别值得注意的是,这将捕获任意数量的段落,它们之间有任意数量的空格。(?i)(?<!\d)Item.*?1A.*?Risk.*?Factors\n*([\s\S]*?)\n*Item.*?1B(?i)(?<!\d)Item.*?1A.*?Risk.*?Factors匹配到风险因素结束。\n*根据需要匹配尽可能多的换行符,直到我们到达下一段。([\s\S]*?)捕获任何内容,跨越任意数量的行(惰性)。\n*根据需要匹配尽可能多的换行符,直到我们到达下一段。Item.*?1B匹配其余内容。(这与最后的不匹配.,您的意思是这样吗?如果是,请添加\.到最后)。
随时随地看视频慕课网APP

相关分类

Python
我要回答