我正在用 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与问题中的示例一起使用。