首页 > 解决方案 > Python从文本中获取段落

问题描述

我是 Python 新手,我仍在学习正则表达式。我想在两个关键词之间找到一段;像这样的东西:

正文的开头

关键字1

段落内容

关键字2

正文结束

我怎么能做到?我试过这个:

(?i)Keyword1(.*?)((?i)Keyword2Variant1|(?i)Keyword2Variant2)

但它并没有真正起作用。

标签: pythonpython-3.xregex

解决方案


您需要确保单点也匹配换行符:使用re.DOTALL标志。

从您的(不可行的)示例中稍作修改:

text = """
Keyword1

Paragraph content

Keyword2Variant2
"""

import re

pattern = 'Keyword1(.*?)(Keyword2Variant1|Keyword2Variant2)'
match = re.search(pattern, text, re.IGNORECASE|re.DOTALL)
print(match.group(1))

产量

Paragraph content

(前后两个空行,但渲染使它们几乎不可见。)


推荐阅读