我正在尝试扩展一些可用于管理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
答案 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)