【发布时间】:2019-04-28 15:51:15
【问题描述】:
我正在尝试删减德语维基百科文章,仅输出传记文本数据(删减所有文学作品、书单等)。因此,文本的示例可能如下所示:
一些相关文本 == Title1 == 更多相关文本 ===Title2=== 和 更相关的文字==一些关于人的文献==不需要的文字 ==作者的书==更多不需要的文字...
问题是在 ==[包括文学或书籍一词的文本]== 模式之前输出文本。应该是这样的:
一些相关文本 == Title1 == 更多相关文本 ===Title2=== 和 更相关的文字
我正在使用 Python 3,我尝试了一些像这样(以及更多)的正则表达式:
seperator = re.compile(r'={2,3}\s?.*literature.*\s?={2,3}')
m = seperator.search(text)
print (text[:m.start()])
但是,不幸的是,这只会输出文本直到第一个模式 == Title1 ==:
一些相关的文字
我怎样才能让它敏感地捕捉到第一个包含“文学”或“书籍”的模式?
我希望我能准确地描述问题。提前感谢您的帮助,如果之前有人问过这个问题,我很抱歉,我在任何地方都找不到解决方案。
顺便说一句,它无法区分 Title1 和 Title2,因为它们有时过于不同且不清楚,所以我试图区分清楚地标记传记文本结束的标题,例如文学或书籍。
【问题讨论】:
-
'literature'这个词是否保证存在? -
如果您发布一个您尝试匹配的真实内容的示例,可能会更有帮助。甚至可能发布其中一篇文章的链接。如果您解释如何获取要解析的内容,它也可能会有所帮助。例如,如果您收到的原始内容是 html/xml/etc。为此使用解析器可能更容易。