【发布时间】:2016-07-14 19:43:57
【问题描述】:
我想编写一个 python 函数,它从带有书目数据的文本文件中提取某些字符串元素。 该文件包含不同的行:
shakespeare, william: macbeth. novel, second edition, cambridge, 2005
每一行由\n分隔。
如何将这些行提取到如下结构中:
author : shakespeare, william
title : macbeth
usw.
【问题讨论】:
-
你试过什么?对于与正则表达式相关的问题,我一直更喜欢使用像 regex101.com 这样的测试站点,并尝试使用我正在尝试处理的示例输入。实时结果有助于直观地了解它们的工作原理。
-
这是我目前的代码:
import re def meta_dict(): with open("bib.txt", "rt", encoding="utf-8") as infile, open("bib.json", "wt", encoding="utf-8") as outfile: content = infile.read() line = content.splitlines() for single in line: author = re.search (r'^[A-Z][a-z]+\s[A-Z][a-z]+|^[A-Z][a-ä]+,\s[A-Z][a-z]+|^[A-Z][a-ü]+|^[A-Z].[A-Z].\s[A-Z][a-z]+|^[A-Z][a-z]*\s[a-z]+|^[A-Z][a-z]+\s[a-z]+\s[A-Z][a-z]+', single) print (author) -
通过编辑将添加内容移动到问题正文中。它们在那种形式下是不可读的。
标签: regex python-3.x dictionary text-extraction