Sublime Text - 用于搜索和替换的正则表达式

时间:2013-09-02 13:07:19

标签: regex sublimetext2

我想使用搜索&用正则表达式替换以打开以下文本:

“有些文字我不关心\cite[p. 6]{some-bibtex-citation}更多关于\ cite [p.321 / 4] {and-another-citation-from-bibxtex}以及更多文字的文字。”< / p>

进入这个:

“有些文字我不关心[\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]

1 个答案:

答案 0 :(得分:30)

更改正则表达式,以便.+变得懒惰:

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

使贪婪的量词变得懒惰意味着它不会尽可能地匹配,而是尽可能少地匹配。在您当前的正则表达式中,.将匹配所有字符,直到找到另一个)(后跟正则表达式中的其他字符)。

或者使用否定的类:

\\cite\[([^\]]+)\]\{([^}]+)\}
相关问题