到目前为止我的代码
# -*- coding: utf-8 -*-
import os, sys, re, codecs
f = open("Krupp.txt", "r")
contents = f.read()
f.close() #close the file
date_pattern = "(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])"
# finds all dates, prints them below eachother and writes them to file
(writing is for test purposes)
with open("testoutput.txt", "a+") as f:
for m in re.finditer(date_pattern, contents):
print m.group(0)
f.write(m.group(0))
f.write("\n")
# extracts text between target1 and target2
target1 = 'date_1'
target2 = 'date_2'
elements = '{}(.+?){}'.format(target1,target2)
pattern = re.compile(elements, flags=re.DOTALL)
results = pattern.findall(contents)
我要搜索的文件
Mittwoch, 15. März 2017
14:30 Uhr
17: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 2017
Samstag, 18. März 2017
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua.
Greifswald, 16 - 18 March 2017
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
Donnerstag, 16. März 2017
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.
我的输出
Mittwoch, 15. März 2017
Donnerstag, 16. März 2017
Samstag, 18. März 2017
Donnerstag, 16. März 2017
我想要什么
如您所见,代码提取了以特定德语格式编写的日期。第二部分在两个字符串之间搜索。 我需要一种方法来使用从第1部分找到的日期作为第2部分的target1和target2。 这样我想提取这些部分:
Mittwoch, 15. März 2017
14:30 Uhr
17: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.
然后将这些部分写入单个文件。 有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐