Skip to main content
 首页 » 编程设计

python之用于匹配标题和子标题的正则表达式,后跟项目符号列表

2024年10月24日28jyk

我正在 try catch 标题/小节中的文本及其后的项目符号列表:

re.finditer('(?!^\* )(?P<description>^.+?)(?P<items>^\* .+?^)(?!^\* )',  
            text, flags=re.DOTALL | re.MULTILINE) 

使用此示例文本:

Header A 
Subheader A 
* Item A 
* Item B 
* Item C 
Header B 
Subheader B 
Description B 
* Item 1 
* Item 2 
* Item 3 
Random Header C 
* Item X 
* Item Y 
* Item Z 

除了 Random Header C 及其项目符号列表外,该表达式有效。解决方法是在 * Item F 之后添加两个尾随换行符 \n\n。知道如何匹配最后一部分,或者是否有更好的方法?

https://regex101.com/r/yG7sJ6/1

请您参考如下方法:

您可以使用此正则表达式来捕获丢失的项目:

(?P<description>^.+?)(?P<items>(?:^\* [^\n]+(?:\n|$))+) 

RegEx Demo