从bibtex文件中提取注释组(在Python中?)

时间:2017-10-29 19:00:54

标签: python parsing sed bibtex

我正在尝试扩展一些可用于管理BibDesk中的组的功能集,并且我想从程序中操作bibtex记录,其中BibDesk写下静态组的信息。

要做到这一点,我需要一种系统而强大的方法来获取bibtex文件的注释部分内的所有内容。

SELECT something 
FROM table 
WHERE categoryid = 2
AND date 
BETWEEN "date1" 
AND "date2"

一旦我把手放在XML @comment{BibDesk Static Groups{ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>group name</key> <string>MyGroupName</string> <key>keys</key> <string>BitexRefId1,BitexRefId2</string> </dict> </array> </plist> }} 上,我想我知道如何处理它,但第一部分,获取array对我来说有点棘手。 我会知道@comment{BibDesk Static Groups{如何使用sed,但是这样做的pythonic方法是什么? 我最好的东西本质上是一个本土的解析器

sed -e '/@comment{BibDesk Static Groups{/,/}/!d' test.bib

1 个答案:

答案 0 :(得分:0)

这是sed命令的快速而脏的翻译。我不一定会推荐这种方法,因为它不是特别健壮。

import re

with open(file_name) as fp:
    text = fp.read()

groups = re.findall(r'\@comment\{BibDesk Static Groups\{(.*?)\}\}', text, re.DOTALL)