使用finditer中的元组作为startpos/endpos进行进一步搜索

2024-04-25 07:02:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一些代码,最终将解析一个主要包含日期和附加数据的文档。并用相应的数据返回日期。你知道吗

到目前为止,我在你们的帮助下:

f = open("Krupp.txt", "r")
contents = f.read()

f.close() #close the file
with open("testoutput.txt", "a+") as f:
    #my regex to find german dates in special format
    for m in re.finditer("(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonnabend|Sonntag)(, )([123][0-9]|[1-9])(. )(Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)( )([0-2][0-9][0-9][0-9])", contents):
    #print whole matchobject
    print m.group(0)

文件如下所示:

Donnerstag, 16. März 2014

17:30 Uhr

19:00 Uhr

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Details
Montag, 20. Oktober 2011

18:00 Uhr

19:30 Uhr

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

我的输出,如果打印出来,看起来像:

Donnerstag, 16. März 2014

Montag, 20. Oktober 2011

现在我想能够使用这些日期作为startpos和endpos进行进一步的搜索。但我不知道我怎么能索引这些日期。你知道吗

如果我使用group(1),它只返回“Donnerstag”和“Montag”。如果我使用group(2),它返回“,”等等。你知道吗

我知道,我的matchobject是一组元组。但是我怎么用这些元组呢?我想能够搜索日期3和5或日期2和9之间。你知道吗

请为noobs写下答案:) 谢谢


Tags: 数据intxtclosecontentsgroupopensed