我正在用 latex 写论文,不小心写了\cite[]而不是\cite{}
我可以手动浏览整个文档,但是我想知道如何使用正则表达式在notepad++中执行此操作。

我最初尝试使用\\cite\[(.*)\]并替换为\cite{\1},它适用于简单的情况,例如

\cite[hello world] blah blah

但是,如果一个段落中有两个或多个引用,则将它们全部匹配。
所以举个例子
\cite[aaa]\cite[bbb] something here \cite[ccc]

匹配整行

如何获得非贪婪的匹配,以便将上面的行匹配为3个单独的匹配
替换命令的结果应该给我
\cite{aaa}\cite{bbb} something here \cite{ccc}

最佳答案

使用一个勉强的(又名非贪婪的)表达式:

\\cite\[(.*?)\]

问号的添加将.*从贪婪(默认)更改为勉强(非贪婪),这意味着它将尽可能少地寻找匹配项,这意味着它不会跳过多个搜索字词,从而如果第一个引用和最后一个引用的闭合方括号匹配,则使用方括号将其匹配。

请参阅此正则表达式的live demo与问题中的示例一起使用。

10-06 03:49