使用 BibTool 和正则表达式修复双括号条目

使用 BibTool 和正则表达式修复双括号条目

我的.bib文件字段中有许多条目Title被双括号括起来。这样会保留标题中的小写字母,而我并不需要。我希望我的参考书目样式能够区分大写字母。以下是说明该问题的缩写条目。

@Article{     Widerker2013,
  Author    = {Widerker, D. and Goetz, S.},
  Title     = {{Fischer against the dilemma defence: the defence
          prevails}}
}

我想要得到的是这样的:

@Article{     Widerker2013,
  Author    = {Widerker, D. and Goetz, S.},
  Title     = {Fischer against the dilemma defence: the defence
          prevails},
}

我一直在使用 BibTool 的rewrite.rule命令来尝试修复这个问题。我一直在使用正则表达式来指定所需的输出格式。但它不起作用,我不知道为什么。这是我在文件中使用的命令.rsc

rewrite.rule { Title # "^\{\{(.*)\}\}$" # "^\{\1\}$" }

使用此命令运行 BibTool 不会返回错误。但它似乎也什么也没做。该Title字段完全相同。

我一直在桌面上的目录中运行 BibTool,但我无法想象这就是问题的根源。以下是我在命令行中执行的操作:

./bibtool -r lib/myresource -i old.bib -o new.bib

是什么赋予了?

答案1

您可以使用 Biber 及其工具模式,而不是 bibtool(我从未使用过)。

创建一个名为的文件,stripbraces.conf内容如下

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <output_align>true</output_align>
  <output_fieldcase>lower</output_fieldcase>
  <sourcemap>
    <maps datatype="bibtex" level="user">
      <map>
        <map_step map_field_source="title" map_match="\A\{(.*)\}\Z" map_replace="$1"/>
      </map>
    </maps>
  </sourcemap>
</config>

与您的文件位于同一目录中.bib

然后运行

biber --tool --configfile=stripbraces.conf <yourbibfile>.bib

然后,Biber 将处理该.bib文件并生成一个名为的文件,<yourbibfile>_bibertool.bib其中标题字段的括号已被删除。

正则表达式\A\{(.*)\}\Z在某些情况下可能过于急切,因此可以尝试\A\{([^\}\{]*)\}\Z在某些情况下不够急切的表达式。

相关内容