现在,我正在编写一个 python 脚本来解析当有人突出显示、记笔记或书签时由 kindles 生成的 My Clippings 文件。我正在使用正则表达式从文件中收集数据,然后我计划将其存储在 sqlite 数据库中。但现在,我无法匹配包含书名和可能作者的行。
这条线有三种可能性。它们可以采用以下格式:
Title (Last, First)
Title (Author)
Title
我想要的是正则表达式捕获标题,以及结尾括号中的任何内容(如果存在),否则捕获一个空白字符串。例如,我希望这里的正则表达式给我结果:
('Title', 'Last, First')
('Title', 'Author')
('Title', '')
现在我设法做了一个正则表达式来捕获括号,但不是没有作者的标题。这是我现在拥有的:
(.+) (?:\((.+)\)(?:\n|\Z))*
唯一的问题是它要求该行以作者结尾,如果我给它一个接受空白字符串的选项,它会发现整行都是没有作者的标题。IE
('Title (Last, First)', '')
('Title (Author)', '')
('Title', '')