我已经处理了这个问题超过一天了,我只是想不出来..
我遇到的问题如下: 鉴于文字:
Obratitepažnjunasljedece:
垫prometa
Rentabilnost imovine
Netomaržu
******* **********************
我需要提取单词“sljedece:”(没有qouatiton标记)和星号行之间的所有文本。
我尝试使用以下代码:
import re
text = """
Obratite pažnju na sljedece:
Pad prometa
Rentabilnost imovine
Neto maržu
**************************************************************
"""
pattern = r"sljecece:(.*?)\*+"
napomene = re.findall(pattern, text)
print(napomene)
但它打印出一个空列表。
提前向所有人致谢!
答案 0 :(得分:4)
您必须通过re.DOTALL
使.
匹配换行符:
re.findall(pattern, text, re.DOTALL)
您的模式r"sljecece:(.*?)\*+"
也应该是r"sljedece:(.*?)\*+"
。
答案 1 :(得分:0)
为了提高效率,您可以限制延迟量词占用整行的影响,直到星号行:
re.findall(r'\bsljedece:((?:.*\n)+?)\*+$', text, re.M)
在您的情况下,re.search
方法可能更合适。