我从 Wordpress 博客中下载了 ~raw 文本数据,结构如下:
POST_ID_1 TITLE_1 DATE_1
This is the text from the first post ..
POST_ID_2 TITLE_2 DATE_2
This is the text from the second post ..
我写了一些正则表达式来捕获 POST_ID、TITLE 和 DATE。我的目标是创建一个结构如下的 Python 字典:
posts = {'DATE_1': {'post_id': POST_ID_1,
'title': TITLE_1,
'text': 'This is the text from the first post ..'
}
}
捕获 header (POST_ID、TITLE、DATE)的正则表达式如下:
header_regex_raw = r"""(\d+)\s(.*(?=January|February|March|April|May|June|July|August|September|October|November|December))(January|February|March|April|May|June|July|August|September|October|November|December)(\s\d+\,\s\d{4}\b)"""
我的想法是做类似 re.findall(header_regex_raw + (.*(?={})).format(header_regex_raw) 的事情,但不幸的是这并没有按计划工作。
如何在前瞻中捕获多个组?创建上述字典的更好方法是什么?
请您参考如下方法:
我在 Python re 模块中找到了一个干净的函数:re.split。
header_regex_raw = r"""(\d+)\s(.+?(?=January|February|March|April|May|June|July|August|September|October|November|December))((January|February|March|April|May|June|July|August|September|October|November|December)(\s\d+\,\s\d{4}\b))"""
header_text_header = re.compile(header_regex_raw)
ret = header_text_header.split(data.strip())
这正是我想要的:它捕获组中的标题元素、另一组中的文本、组中的后续标题元素等。
