0
我有一个大型文件,基本上看起来像日记,并希望提取有关每个日期的所有信息以进一步处理它。将匹配从findall/finditer转换为变量或字符串
File looks like this:
Mittwoch, 13. September 2017
19:00 Uhr
20: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. At vero eos et accusam et justo duo dolores et ea rebum.
Mittwoch, 20. September 2017
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. At vero eos et accusam et justo duo dolores et ea rebum.
为了实现这一点,我分析的日期与下面的代码返回每个日期作为一个比赛(我的findall使用,finditer,因为我不确定这是更好地处理)。
我现在想分配每个匹配作为一个变量与数字来形成开始和结束点。
这种方式我希望将文档分成单个事件。
问题是,我不知道如何分配匹配作为字符串或变量,并找不到有用的东西。
代码:
# finditer
matches = 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) # finds all Dates and shows them in a List (Day , Number . Month () Year)
for match in matches:
print "{g}".format(g=match.group()) # returns dates below eachother without ''
# findall
matches = re.findall("(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) # finds all Dates and shows them in a List (Day , Number . Month () Year)
for aTuple in matches:
print "\n",('%r%r%r%r%r%r%r' % aTuple) # print findings after new line below eachother with ''
for Weekday, Comma, Day, Dot, Month, Space, Year in matches:
print "\n", Weekday, Comma, Day, Dot, Month, Space, Year
所以在最后我想有这样的:
日期1 =( “Mittwoch,2017年13月”)
日期2 =(“Mittwoch ,2017年9月20日“)
这将允许提取Date1和Date2之间的所有内容。
感谢您的帮助和努力
谢谢,但问题是,它不是唯一的文件,这将成为提取必要信息的模板。如果起始点和终点是一个日期,它会有所不同。所以我需要一种方法来使匹配变量能够在这些变量之间进行搜索和提取。没有一种简单的方法可以按发生顺序将每个matchobject变成一个变量吗? – Elite