21

検索と置換を正規表現で使用して、次のテキストを変換したい:

「いくつかのテキストについて\cite[p. 6]{some-bibtex-citation}は気にしません。他のテキストについてはあまり気にしません。

これに:

[\citem{author}{some-bibtex-citation}, p. 6]気にしないテキストもあれば、あまり気にしないテキストもあれば、さらに[\citem{author}{and-another-citation-from-bibxtex}, p. 321 / 4]多くのテキストもある。」

ご覧のとおり、すべての \cite が別のものに置き換えられています。それらは [ と ] で囲まれ、すべて [citem{author} で始まります。

基本的には機能しますが、一度にあまりにも多くのテキストを選択できる次の検索正規表現で試しました。

\\cite\[(.+)\]\{(.+)\}

これに使用した置換正規表現は次のとおりです。

[\\citem{author}{\2}, \1]
4

1 に答える 1

33

.+が遅延するように正規表現を変更します。

\\cite\[(.+?)\]\{(.+?)\}
           ^        ^

貪欲な量指定子を怠惰にするということは、可能な限り一致するのではなく、可能な限り一致しないことを意味します。現在の正規表現では、.別の文字が見つかるまですべての文字に一致します)(その後に正規表現の他の文字が続きます)。

または、否定されたクラスを使用します。

\\cite\[([^\]]+)\]\{([^}]+)\}
于 2013-09-02T13:14:20.240 に答える