我想使用搜索&用正则表达式替换以打开以下文本:
“有些文字我不关心\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]
答案 0 :(得分:30)
更改正则表达式,以便.+
变得懒惰:
\\cite\[(.+?)\]\{(.+?)\}
^ ^
使贪婪的量词变得懒惰意味着它不会尽可能地匹配,而是尽可能少地匹配。在您当前的正则表达式中,.
将匹配所有字符,直到找到另一个)
(后跟正则表达式中的其他字符)。
或者使用否定的类:
\\cite\[([^\]]+)\]\{([^}]+)\}