11

ラテックスで論文を書いていて、誤って\cite[]の代わりに書いてしまいました\cite{}。ドキュメント全体を手で確認することもできますが、正規表現を使用してメモ帳 ++ でこれを行う方法を知りたいです。

私は最初に次のような単純なケースで機能するものを試し\\cite\[(.*)\]て置き換えました\cite{\1}

\cite[hello world] blah blah 

ただし、段落に 2 つ以上の引用がある場合は、それらすべてに一致します。たとえば

\cite[aaa]\cite[bbb] something here \cite[ccc]

行全体に一致

上記の行が3つの個別の一致として一致し、置換コマンドの結果が私に与えるように、貪欲でない一致を取得するにはどうすればよいですか

\cite{aaa}\cite{bbb} something here \cite{ccc}
4

2 に答える 2

32

が進まない (貪欲ではない) 表現を使用します。

\\cite\[(.*?)] 

ライブ デモをご覧ください。

クエスチョン マークを追加すると、.*貪欲 (デフォルト) から消極的 (reluctant) に変更されるため、一致を見つけるための消費ができるだけ少なくなります。つまり、1 つの用語の開始から最後まで一致する複数の検索用語をスキップしません。別の用語の。

つまり.*、マッチを使用すると

foo \cite[aaa]\cite[bbb] something here \cite[ccc] bar
    ^----------------------1---------------------^

しかし.*?、一致すると次のようになります。

foo \cite[aaa]\cite[bbb] something here \cite[ccc] bar
    ^---1----^^----------------2-----------------^

マイナーノート:]エスケープする必要はありません。

于 2013-08-24T06:54:57.483 に答える