「スタック オーバーフロー」エラー (「スタック スペースが不足しています (アプリケーション エラー コード: 12246)」) について困惑しています。
(@article(((?!eprint|@article|@book).)*\r)*)pmid = {(.+)}((((?!eprint|@article|@book).)*\r)*(@|\r*\z))
と置き換えます
\1eprinttype = {pubmed}, eprint = {\4}\5
これらの同じパターンを手動で使用して、一度に 1 つずつ検索と置換を実行できます。一致が発生しなくなっても、エラーは発生しません。小さなファイルで作業することで、エラーを回避することもできます。
責任があるのは私の非効率的でずさんな正規表現コーディングであると思われます。これをより効率的に行うために専門家の助けをいただければ幸いです。BibLaTeX 文献目録で、まだフィールドを持っていないが、eprint
フィールドを持っているすべてのエントリを見つけて、フィールドを対応する e-print 仕様にpmid
置き換えようとしています (とを使用)。pmid
eprint
eprinttype
更新:いくつかの実験の後、別のアプローチが唯一の方法であることがわかりました。探している
(?(?=@article(.+\r)+eprint = {(.+\r)+}\r*)(?!)|(@article(.+\r)+)pmid = {(.+)}((.+\r)+}\r*))
と置き換えます
\3eprinttype = {pubmed}, eprint = {\5}\6
トリックを行います。これに関する唯一の問題は、後方参照が壊れやすいことですが、名前付き後方参照を BBEdit で動作させることができません。